AnyEvent-IRC
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
samples/anyeventirc view on Meta::CPAN
#!/usr/bin/env perl
use common::sense;
use AnyEvent::Impl::Perl;
use AnyEvent;
use AnyEvent::IRC::Connection;
my $c = AnyEvent->condvar;
my $con = AnyEvent::IRC::Connection->new;
my ($nick, $user, $real) = qw/BinDepp BinDepp depp/;
$con->reg_cb (irc_001 => sub {
my ($con) = @_;
$con->event ('welcome'); # emit a self defined event
});
# display all irc messages for debugging
$con->reg_cb ('irc_*' => sub {
my @p = @{delete $_[1]->{params} || []};
warn "DEBUG: " . join ('|', %{$_[1]}, @p) . "\n";
});
$con->reg_cb ('sent' => sub {
shift; warn "DEBUG SENT: " . join ('|', @_) . "\n";
});
# we register now a callback on our self defined event
$con->reg_cb (welcome => sub {
my ($con) = @_;
$con->send_msg ("PRIVMSG", "elmex", "Hi!!!");
});
# Disconnect after 10 seconds:
my $t;
$t = AnyEvent->timer (after => 10, cb => sub {
$con->disconnect ("Timeout exceeded");
undef $t;
});
# lets register connect and disconnect handlers.
$con->reg_cb (
connect => sub {
my ($con, $err) = @_;
if (defined $err) {
warn "Connect ERROR! => $err\n";
$c->broadcast;
} else {
warn "Connected! Yay!\n";
}
# send IRC registration
$con->send_msg ("NICK", $nick);
$con->send_msg ("USER", $user || $nick, "*", "0", $real || $nick);
},
disconnect => sub {
warn "Oh, got a disconnect: $_[1], exiting...\n";
$c->broadcast;
}
);
$con->connect ("localhost", 6667);
$c->wait;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.512 second using v1.00-cache-2.02-grep-82fe00e-cpan-f5108d614456 )