Митяй, спасибо;)) книжку уже перечитываю 3-й раз, особенно после Рефакторинга Фаулера, у них идее пересекаются
$$index_func_name->( $fh, $idx_file ); здесь у меня лишний доллар работает и так $index_func_name->( $fh, $idx_file ); но все-таки так прозрачно, как &$index_func_name->( $fh, $idx_file ); !! хотя так тоже работае, ок, тогда ответ &$index_func_name->( $fh, $idx_file ); !! ясно видно, что вызывается функция 29.12.2011, 15:03, "Dmitry Karpich" <[email protected]>: > Потому что > > my $ref_sub1=sub {print 'By '. $_[0] }; > sub temop_sub{ print 'Hi '. $_[0] }; > my $ref_sub=\&temop_sub; # !!!!! ссылка на sub а не ссылка на ее результат > > $ref_sub->(); # так - лучше всего > > &{$ref_sub1}; > > Михаил, у вас же есть подписанная Larry книга, почитайте ее :) > > Митяй > > On Dec 29, 2011, at 12:48 PM, Nikolay Mishin wrote: > >> Hi MoscowPM >> >> my $ref_sub1=sub {print 'By '. $_[0] }; >> sub temop_sub{ print 'Hi '. $_[0] }; >> my $ref_sub=\&temop_sub(); >> $$ref_sub; >> &$ref_sub; >> Not a CODE reference at 11_sub_ref.pl line 5. >> &{$ref_sub1}; >> >> почему так? >> почему я не могу вызывать именованную процедуру >> &{$ref_sub1}; ?? >> ведь вызывать ссылку на код с помощью >> & - лучше, чем с помощью $ >> здесь явно показывается, что вызывается процедура >> >> Спасибо. >> -- >> Nikolay Mishin >> -- >> Moscow.pm mailing list >> [email protected] | http://moscow.pm.org > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org -- Nikolay Mishin -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
