chiark / gitweb /
verbosity
[bin.git] / ircwho.pl
1 #! /usr/bin/perl -w
2 use strict;
3
4 use Net::IRC;
5
6 sub usage ()
7 {
8         print <<"EOF";
9 Usage: $0 server my-nick target-channel
10 EOF
11         exit 1;
12 }
13
14 my $server = shift or usage;
15 my $mynick = shift or usage;
16 my $targetchannel = shift or usage;
17
18 my $irc = new Net::IRC;
19
20 my $conn = $irc->newconn(Nick => $mynick, Server => $server)
21         or die "$0: can't connect to IRC server";
22
23 sub on_connect
24 {
25         my $self = shift;
26         $self->who($targetchannel);
27 }
28
29 sub on_whoreply
30 {
31         my ($self, $event) = @_;
32         my ($me, $channel, $user, $host,
33                 $server, $nick, $status, $realname) = $event->args;
34         printf "\%-12s  \%s\n", $nick, $realname;
35 }
36
37 sub on_endofwho
38 {
39         my $self = shift;
40         $self->quit;
41         exit;
42 }
43
44 $conn->add_handler('376', \&on_connect);
45 $conn->add_handler('352', \&on_whoreply);
46 $conn->add_handler('315', \&on_endofwho);
47
48 $irc->start;