|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 28 Feb 2003 23:05:22 To : Andrey Sapozhnikov Subject : Re: Передача функции -------------------------------------------------------------------------------- Здравствуй, Andrey Sapozhnikov. AS> >>Я хочу передать функцию как параметр. Где я ошибся? AS> >>#!perl -w AS> >>use strict; AS> >> AS> >>my_sub( { print join '|', @_ }, 'asd'); AS> > AS> > AS> > my_sub( sub { print join '|', @_ }, 'asd'); AS> > AS> [скип] AS> >>(кстати, правильно ли я понимаю, что функции типа map, grep устроены AS> >>примерно так же в смысле вызова?) AS> > AS> > AS> > А хз, как они устроены, но сильно вряд ли. Исходники смотри. AS> > AS> Да все просто устроено. Читать perldoc perlsub на предмет прототипов. AS> Особое внимание уделить строке: AS> An "&" requires an anonymous subroutine, which, if passed as the first AS> argument, does not require the "sub" keyword or a subsequent comma. AS> после чего определить my_sub как (&$) убрать в примере лишнюю запятую AS> и наслаждаться результатом. Ты забыл сказать, что прототип должен быть описан до использования. Впрочем, в perldoc perlsub это написано... -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/14454823506de.html, оценка из 5, голосов 10
|