[Moscow.pm] Прототипы
ksvs
ksvs1996 на ymail.com
Ср Окт 17 06:33:57 PDT 2012
А почему для
subfoo(&$) {
my ($s, $v) = @_;
$s->($v);
}
Вызов
foosub { print @_ }, "hello\n";
работат
И
foo { print @_ } "hello\n";
работает
А
my $print = sub { print @_ };
foo $print, "hello\n";
Не работает?
Почему большую функцию не можно вынести отдельно?
Неужели придется писать
subfoo($$);
Аналогичная ситуация с массивами и хешами:
sub foo(\@\%) {
my ($a, $h) = @_;
printscalar @$a, "\n";
}
my @foo = (1, 2);
my %foo = (1 => 2);
Вот так работате.
foo @foo, %foo;
А так
foo \@foo, \%foo;
не работает.
А если у меня ссылки на массивы, что что придется их разыменовывать только для вызова?
Зачем тогда такие прототипы нужны?
А если везде использовать в прототипах $, то зачем тогда эти все @ и %?
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121017/687c4e02/attachment.html>
Подробная информация о списке рассылки Moscow-pm