Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Событийные машины


Автор: nIkTo 23.11.2009, 21:16
Наспамьте книг, статей, доков по событийным машинам (POE, AnyEvent, EV, Event, может есть ещё какие ...)

очень хочу изучить, сейчас курю треды на форуме, книг никаких не нашёл =(

Автор: ginnie 23.11.2009, 22:27
nIkTo, я разбирался при помощи книги Линкольн Штайн. Разработка сетевых программ на Perl (есть в сети в электронном виде на русском), описания модуля EV и документации по libev (ссылка есть в описании модуля). Для успешного освоения необходимо поставить практическую задачу и решать ее. Когда я знакомился с EV, готовых модулей более высокого уровня практически не было, сейчас они появились и многое можно подчерпнуть из их кода.

Автор: arto 23.11.2009, 22:29
perldoc не помогает?

Автор: nIkTo 23.11.2009, 22:43
ginnie, просмотрел книгу Разработка сетевых программ на Perl. (Линкольн Д.Штайн) не нашёл там упоминаний ни одного из перечисленного : POE, AnyEvent, EV, Event
межет это была другая книга ?

Автор: ginnie 24.11.2009, 00:48
nIkTo, в книге описано использование select для организации событийной машины для сокета. Моя практическая задача состояла в осуществлении одновременных HTTP-запросов к серверам. Книга мне во многом помогла.

Автор: nIkTo 24.11.2009, 18:06
Может есть у кого-нибудь скрипт построеный на событийных машинах, что-бы наглядно посмотреть и разбираться ?

Автор: ginnie 24.11.2009, 18:46
Класс для HTTP-запросов, на основе EV во вложении.
Использование класса:
Код

my $mux = HTTP::Multiplex->new( timeout => 3, max_response_size => '1M' );
my $request = HTTP::Request->new('GET', 'http://google.com');
unless ($mux->add_request($request)) { 
    warn $mux->get_error(); 
}
my $responses = $mux->process_requests();

Автор: nIkTo 24.11.2009, 18:52
ginnie, благодарю.

Автор: nIkTo 24.11.2009, 23:29
Интересно почему в Perl Package Manager под Windows нету EV::ADNS модуля для установки .... под unix установка в CPAN завершилась ошибкой =(
Цитата

ADNS.xs:422: error: Б─≤adns_s_max_permfailБ─≥ undeclared (first use in this function)
ADNS.xs:342: warning: ISO C90 forbids mixed declarations and code
ADNS.xs:430: warning: implicit declaration of function Б─≤adns_initБ─≥
ADNS.xs:430: error: Б─≤adsБ─≥ undeclared (first use in this function)
ADNS.xs:430: error: invalid operands to binary |
ADNS.xs:430: error: invalid operands to binary |
ADNS.xs:430: error: invalid operands to binary |
make: *** [ADNS.o] Error 1
  MLEHMANN/EV-ADNS-2.1.tar.gz
  /usr/bin/make -- NOT OK
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible
Failed during this command:
 MLEHMANN/EV-ADNS-2.1.tar.gz                  : make NO

Автор: DurRandir 26.11.2009, 14:00
Цитата
This is a simple interface to libadns

Скорее всего, не находит эту библиотеку. И понятно, почему под *win нет - не факт, что там эта библиотека скомпилируется/заработает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)