Нет, настроение у меня хорошее, всех с наступающим!
29.12.2011, 15:17, "oleg alexeenkov" <[email protected]>: > Nikolay Mishin <[email protected]> писал(а) в своём письме Thu, 29 Dec 2011 > 15:07:45 +0400: > >> То есть создавать ссылки на функции - плохая идея >> (у меня так и не заработала передача параметров) >> ну в общем понятно, >> объектов с пакетами должно быть достаточно >> для всяких хитростей и усложнения кода >> >> жаль! > > Спасибо за настроение. > >> 29.12.2011, 15:37, "Dmitry Karpich" <[email protected]>: >>> Исчо раз. >>> >>> sub create_index ($$){ >>> my ($fh, $idx_file)=@_; >>> print "create index func\n"; >>> } >>> >>> my $fh = 10; >>> my $idx_file = 20; >>> >>> say ' - work, but looks strange'; >>> my $index_func_name=\&create_index; # JUST &create_index, NOT >>> &create_index() !!!!! >>> $index_func_name->( $fh, $idx_file); >>> >>> say ' - much better'; >>> create_index $fh, $idx_file; # just func, don`t do that on class method >>> >>> не усложняйте себе жизнь, а? :) >>> >>> Митяй. >>> >>> On Dec 29, 2011, at 1:16 PM, Nikolay Mishin wrote: >>>> Митяй, спасибо;)) книжку уже перечитываю 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 >>> -- >>> Moscow.pm mailing list >>> [email protected] | http://moscow.pm.org >> -- >> Nikolay Mishin > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org -- Nikolay Mishin -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
