Da poco sto studiando il Perl e sto sviluppando con l'aiuto di altri bot e guide, questo Bot che spero di rilasciare sto GPLv3 tra qualche tempo..codice:#!/usr/bin/perl use IO::Socket; use LWP::UserAgent; use warnings; use diagnostics; my $unick = 'lp-italia_bot'; my $server = 'irc.freenode.net'; my $chan = '#lp-italia'; my $bot = 'lp-italia_bot'; my $nick; my $address; my $target; my $msg; $sock = new IO::Socket::INET ( PeerAddr => $server, PeerPort => 6667, Proto => 'tcp' ) or die "Impossibile connettersi a $server\n"; start(); while($rcv = <$sock>) { open(IMG, ">>", <edo_bot.txt>); print IMG "$rcv\n"; close(IMG); print $rcv; if ($rcv =~ /^PING(.*)$/i) { print $sock "PONG $1\r\n"; } else { print "$rcv\n"; } if ($rcv =~ /^:(.+?)!(.+?@.+?) PRIVMSG (.+?) :(.*)$/i) { my $nick = $1; my $address = $2; my $target = $3; my $msg = $4; } if($rcv =~ /!quit libreplanet/) { exit(); } if( $msg eq 'Ciao' || 'Buongiorno') { if ( $target eq $chan) { chan("Ciao $nick"); } if ($target eq 'lp-italia_bot') { priv("Ciao $nick"); } } if($msg =~ /((W|w)indows|(B|b)ill (G|g)ates)/ ) { if($target eq $chan) { chan("GNU/Linux Get Your Freedom: http://gnu.org" ); } if($target eq 'lp-italia_bot') { priv("Prova gNewSense: http://gnewsense.org"); } } if($rcv =~ /!time/) { @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); @weekDays = qw(Sun Mon Tue Wed Thu Fri Sat Sun); ($second, $minute, $hour, $dayOfMonth, $month, $yearOffset, $dayOfWeek, $dayOfYear, $daylightSavings) = localtime(); $year = 1900 + $yearOffset; $theTime = "$hour:$minute:$second, $weekDays[$dayOfWeek] $months[$month] $dayOfMonth, $year"; chan("$theTime"); } } sub start() { print $sock "NICK $unick\r\n"; print $sock "USER $unick 8 * :$bot\r\n"; print $sock "JOIN $chan\r\n"; } sub exit() { print $sock "QUIT \r\n"; } sub chan() { my $mes = shift; print $sock "PRIVMSG $chan :$mes\r\n"; } sub priv() { my $mes = shift; print $sock "PRIVMSG $nick :$mes\r\n"; }
Lanciando l'interprete ottengo questo errore... Qualche idea?
Use of uninitialized value in string eq at edo1.pl line 68, <GEN0> line 3 (#3)
Use of uninitialized value in string eq at edo1.pl line 70, <GEN0> line 3 (#3)
Use of uninitialized value in string eq at edo1.pl line 75, <GEN0> line 3 (#3)
Use of uninitialized value in pattern match (m//) at edo1.pl line 90, <GEN0>

Rispondi quotando