|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 28 Feb 2003 14:49:18 To : Ivan Frolcov Subject : Re: Передача функции -------------------------------------------------------------------------------- Ivan Frolcov wrote: > On Fri, 28 Feb 2003 07:48:51 +0000 (UTC), Mikhail Polykovsky > <glader@company.utk.ru> wrote: > > >>Я хочу передать функцию как параметр. Где я ошибся? >>#!perl -w >>use strict; >> >>my_sub( { print join '|', @_ }, 'asd'); > > > my_sub( sub { print join '|', @_ }, 'asd'); > [скип] >>(кстати, правильно ли я понимаю, что функции типа map, grep устроены >>примерно так же в смысле вызова?) > > > А хз, как они устроены, но сильно вряд ли. Исходники смотри. > Да все просто устроено. Читать perldoc perlsub на предмет прототипов. Особое внимание уделить строке: An "&" requires an anonymous subroutine, which, if passed as the first argument, does not require the "sub" keyword or a subsequent comma. после чего определить my_sub как (&$) убрать в примере лишнюю запятую и наслаждаться результатом. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6577797d1960.html, оценка из 5, голосов 10
|