Некоторые простые ошибки с IRC-ботом, созданным с помощью Perl - PullRequest
0 голосов
/ 26 января 2011

Я следую учебнику под названием Программирование IRC-ботов в Perl , чтобы создать простого IRC-бота для моего канала на сервере Abjects, проблема в том, что я получаю некоторые странные ошибки.Посмотрите:

Натан-Кампосс-MacBook-Pro: Рабочий стол Натан $ ./bot.pl
./bot.pl: строка 1: команда use: команда не найдена
./bot.pl: строка 4: команда my: не найдена
./bot.pl: строка 8: синтаксическая ошибка рядом с неожиданным токеном ('<br> ./bot.pl: line 8: my $ conn = $ irc-> newconn ('
Натан-Кампосс-MacBook-Pro: рабочий стол Натана $

С этим кодом:

use Net::IRC;

# create the IRC object
my $irc = new Net::IRC;

# Create a connection object.  You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
 Server   => shift || 'summer.abjects.net',
 # Note: IRC port is normally 6667, but my firewall won't allow it
 Port  => shift || '6667',
 Nick  => 'iBot',
 Ircname  => 'I\'ve bee built by iNathan!',
 Username => 'iBot'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} = shift || '#MobilePassion';

sub on_connect {

 # shift in our connection object that is passed automatically
 my $conn = shift;

 # when we connect, join our channel and greet it
 $conn->join($conn->{channel});
 $conn->privmsg($conn->{channel}, 'Hello everyone!');
 $conn->{connected} = 1;
}

# The end of MOTD (message of the day), numbered 376 signifies we've connect
$conn->add_handler('376', \&on_connect);

sub on_join {

 # get our connection object and the event object, which is passed
 # with this event automatically
 my ($conn, $event) = @_;

 # this is the nick that just joined
 my $nick = $event->{nick};
 # say hello to the nick in public
 $conn->privmsg($conn->{channel}, "Hello, $nick!");
}

$conn->add_handler('join', \&on_join);

$irc->start();

Что мне сделать, чтобы исправить это?

Ответы [ 3 ]

3 голосов
/ 26 января 2011
#!/usr/bin/perl

вверху./ bin / sh обычно не понимает Perl, это то, что вы видите.

Также я бы порекомендовал:

use strict;
use warnings;
2 голосов
/ 26 января 2011

Кроме того, и я уверен, что вы уже видели и слышали это раньше где-то, но сделайте себе одолжение и не используйте Net::IRC ... Это было мертвым в воде в течение 7 лет.

Новая рекомендация - использовать POE::Component::IRC или какой-либо другой вариант. В то время как POE::Component::IRC предлагает вам максимальный контроль, гибкость и обзор функций бота, гораздо более простой подход - Bot::BasicBot.

Надеюсь, это поможет.

1 голос
/ 26 января 2011

В отношении http://freetexthost.com/wdmcihuvxx, вам не хватает сетевой библиотеки. В зависимости от того, в какой ОС вы работаете, у вас есть несколько способов получить ее - или просто использовать CPAN.

...