[Moscow.pm] function ref

Nikolay Mishin mi на ya.ru
Чт Дек 29 02:16:26 PST 2011


Митяй, спасибо;)) книжку уже перечитываю 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" <meettya на gmail.com>:
> Потому что
>
> 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
>>  moscow-pm на pm.org | http://moscow.pm.org
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org

--
Nikolay Mishin


Подробная информация о списке рассылки Moscow-pm