[Moscow.pm] Вакансия: AnyEvent in Mail.ru

ksvs ksvs1996 на ymail.com
Пт Июл 26 06:57:44 PDT 2013


Смысл в том, чтобы добавить прослойку ограничивающую взор вложенных замыканий.

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 <mons на cpan.org>
To: Moscow.pm group <moscow-pm на pm.org> 
Sent: Friday, 26 July 2013, 14:28
Subject: Re: [Moscow.pm] Вакансия: AnyEvent in Mail.ru
 

2013/7/26 ksvs <ksvs1996 на ymail.com>:
>
> А почему так, а не вот так, например:
>
> 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
moscow-pm на pm.org | http://moscow.pm.org
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130726/d7692449/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm