in reply to Re: Perl Simple IRC Client question
in thread Perl Simple IRC Client question

I'd like to stick to not having to require modules if it's possible. I got IO::Select working properly, and I can now listen to multiple servers. I have another question though. I'm eventually going to have a large handful of servers, and hard coding each one seems a bit sloppy. I'm trying to use the following code to clean it up a bit:
my $sock = new IO::Socket::SSL(PeerAddr => 'irc.server2.org', PeerPort + => '6697', Proto => 'tcp') or die "Can't connect\n"; my $sock2 = new IO::Socket::SSL(PeerAddr => 'irc.server1.org', PeerPor +t => '6697', Proto => 'tcp') or die "Can't connect\n"; my %Servers = (server1 => $sock, server2 => $sock2); foreach my $out (keys %Servers) { print $Servers{$out} "NICK mlapaglia\r\n"; print $Servers{$out} "USER mlapaglia\r\n"; }
but it's failing at print $Servers{$out} "NICK mlapaglia\r\n"; When I try print $sock "NICK mlapaglia\r\n"; it works properly. Am I dereferencing incorrectly?

Replies are listed 'Best First'.
Re^3: Perl Simple IRC Client question
by Corion (Patriarch) on Feb 19, 2010 at 07:55 UTC

    You should really use some of the IRC modules instead of writing this yourself. For example if the remote server is very slow (or throttles you), your attempt of blockingly printing a whole line in one go will stall your whole client even if it's just one server that is slow.

    But anyway, see print about how to print to any expression more complex than a simple scalar.

      Ok I've decided to use BasicBot, sorry but I have one more question. I'm trying to override the said subroutine, but failing miserably. I've been googling if there is any special syntax besides writing a sub said { } after the declaration, but it's still using the default subroutine..
        Sorry I wasn't logged in. Here's the code:
        #!/bin/perl -w use strict; use Bot::BasicBot; my $bot = Bot::BasicBot->new( server => "ircserver", port => "6697", ssl => "true", channels => ["#testing123"], nick => "mlapaglia", alt_nicks => ["bbot", "simplebot"], username => "mlapaglia", name => "mlapaglia", ); $bot->run(); sub said { print "ahhh\n"; }
Re^3: Perl Simple IRC Client question
by Your Mother (Archbishop) on Feb 19, 2010 at 01:19 UTC