Смысл в том, чтобы добавить прослойку ограничивающую взор вложенных замыканий.
call sub {
my ($a, $b) = ...;
my $i = ...;
call sub {
# Видит все $a и $b и остальное.
my $i = ...
# Забыл поставить my перед $i и получил ошибку.
call ...
}
}
Заменяем на
sub foo {
my ($b) = @_;
# Видит только $b, - только то, что нужно.
call ...
}
call sub {
my ($a, $b);
call sub { foo($b) }
}
Так проще получается и меньше ошибок.
P.S.
mod_perl?
________________________________
From: Mons Anderson <[email protected]>
To: Moscow.pm group <[email protected]>
Sent: Friday, 26 July 2013, 14:28
Subject: Re: [Moscow.pm] Вакансия: AnyEvent in Mail.ru
2013/7/26 ksvs <[email protected]>:
>
> А почему так, а не вот так, например:
>
> call $foo;
> call sub { foo(....) };
>
> так ведь проще...
Не понял этого примера.
опиши свой пример, если это реальные вызовы
for my $url (@urls) {
http_request GET => "$url/1", sub {
http_request GET => "$url/2", sub {
http_request GET => "$url/3", sub {
...
}
}
}
}
а так, потому что замыкания.
>
> А почему не голый EV?
Потому что потери на AnyEvent незначительные, а код можно запускать и без EV.
например, внутри апача с Impl::Perl
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org