Имея несколько проблем с кодом ниже ..Perl: IRC Примечание Печать
my $file=File::Tail->new("/var/log/messages");
while (defined(my $line=$file->read)) {
print $sock "NOTICE #logs $line";
}
Как вы можете видеть, я хвостовые журналы сервер сообщений (который работает) и печать в IRC гнездо в виде УВЕДОМЛЕНИЕ, но по какой-то причине оно только распечатывает первое слово каждой строки в канале - например, это только печать «Ян», поскольку это месяц.
Может ли кто-нибудь помочь в этом?
[06:55:48] IRCBOT ([email protected]) joined the channel.
[06:56:00] -IRCBOT- Jan
[06:56:00] -IRCBOT- Jan
[06:56:00] -IRCBOT- Jan
[06:56:00] -IRCBOT- Jan
[06:56:00] -IRCBOT- Jan
[06:56:02] -IRCBOT- Jan
Большое спасибо заранее!
EDIT: Только в случае, если это имеет значение, это то, как я подключиться к серверу IRC ..
use IO::Socket;
use File::Tail;
my $file=File::Tail->new("/var/log/messages");
my $server = "irc.example.co.uk";
my $nick = "IRCBOT";
my $login = "IRCBOT";
my $channel = "#logs";
my $sock = new IO::Socket::INET(PeerAddr => $server,
PeerPort => 6667,
Proto => 'tcp') or
die "Can't connect\n";
вам не нужно делать поставить «:» или «» в начале сообщения, т. е. «print $ sock» NOTICE #logs: $ line »;' – kfsone
Есть ли какая-то конкретная причина для прокатки собственной библиотеки IRC? В противном случае я предлагаю глядя в CPAN для одного. – AlfredoVR