Поскольку библиотека Perl Net::IRC устарела, мне нужно преобразовать некоторый старый код, который ее использует, в более новый AnyEvent::IRC::Client. Проблема в том, что документ AnyEvent MetaCPAN. не показывают никакой эквивалентности числовым кодам событий IRC и методам add_global_handler() и add_handler(), которые поддерживает Net::IRC. Так, например, что будет эквивалентно следующим фрагментам кода Net::IRC в синтаксисе AnyEvent::IRC::Client? Любое понимание очень ценится. Спасибо!
my $irc = new Net::IRC ;
my $conn = $irc->newconn( Server => ..., Port => ..., Nick => ... ) ;
$conn->add_global_handler( [ 251, 252, 253, 254, 255, 302 ], \&on_init ) ;
$conn->add_global_handler( [ 422, 376 ], \&on_connect ) ;
$conn->add_handler( 'crping', \&on_ping_reply ) ;
$conn->add_handler( 'caction', \&on_action ) ;
...
$irc->start ;
Документы для AnyEvent::IRC::Client ( ref: https://metacpan.org/pod/AnyEvent::IRC::Client ) предоставляет только метод reg_cb() и не имеет обработчика числового кода IRC, поэтому ниже приведены все, что у меня есть для новых кодов:
my $condVar = AnyEvent->condvar ;
my $conn = AnyEvent::IRC::Client->new() ;
$conn->connect( $server, $port, ... ) ;
$conn->reg_cb( crping => sub { ... } ) ;
$conn->reg_cb( caction => sub { ... } ) ;
my $timer = AnyEvent->timer (
after => $twoSecs ,
cb => sub {
$conn->disconnect ;
$condVar->send ;
}#end callback
) ;#end timer
$condVar->recv ;
undef( $timer ) ;