#!/usr/bin/perl use strict; use warnings; use diagnostics; use Net::IRC; use Getopt::Long; my $nick = "ircnotify"; my $server = "servername.dmo.ca"; my $port = 6667; my @channels = (); my $result = GetOptions( "nick=s" => \$nick, "server=s" => \$server, "port=n" => \$port, "channels=s" => \@channels); my $message = join (" ", @ARGV); $message || die "No message"; # Grab only the first line of STDIN if message is - $message = if $message eq "-"; my %seen = (); @channels = grep { ! $seen{$_}++ } @channels; die "No channels given" unless(scalar(@channels) ); my $irc = new Net::IRC; my $conn = $irc->newconn(Nick => $nick, Server => $server, Port => $port, Ircname => 'IRC Notifier'); $conn->add_global_handler(376, \&on_connect); $irc->start; sub on_connect { my $self = shift; foreach my $chan (@channels) { $self->privmsg($chan, $message); } exit; }