Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Perl生成的IRC Bot的一些简单错误_Perl_Cpan_Irc_Bots - Fatal编程技术网

使用Perl生成的IRC Bot的一些简单错误

使用Perl生成的IRC Bot的一些简单错误,perl,cpan,irc,bots,Perl,Cpan,Irc,Bots,我正在遵循一个名为“在Abjects服务器上为我的频道制作一个简单的IRC机器人”的教程,问题是我遇到了一些奇怪的错误。看一看: Nathan Camposs MacBook Pro:Desktop Nathan$/bot.pl ./bot.pl:第1行:未找到use:命令 ./bot.pl:第4行:未找到my:命令 ./bot.pl:第8行:意外标记附近的语法错误(' ./bot.pl:第8行:my$conn=$irc->newconn(' Nathan Camposs MacBook Pro

我正在遵循一个名为“在Abjects服务器上为我的频道制作一个简单的IRC机器人”的教程,问题是我遇到了一些奇怪的错误。看一看:

Nathan Camposs MacBook Pro:Desktop Nathan$/bot.pl
./bot.pl:第1行:未找到use:命令
./bot.pl:第4行:未找到my:命令
./bot.pl:第8行:意外标记附近的语法错误
('
./bot.pl:第8行:
my$conn=$irc->newconn('
Nathan Camposs MacBook Pro:台式机Nathan$

使用此代码:

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();
我应该怎么做来纠正这个问题

#!/usr/bin/perl
在顶部。/bin/sh通常不理解Perl,这就是您看到的

此外,我建议:

use strict;
use warnings;
在顶部。/bin/sh通常不理解Perl,这就是您看到的

此外,我建议:

use strict;
use warnings;

参考,您丢失了网络库。根据您所使用的操作系统,您有多种获取它的方法,或者只使用CPAN。

参考,您丢失了网络库。根据您所使用的操作系统,您有多种获取它的方法,或者只使用CPAN。

此外,我相信您以前看到和听到过这一点或者在某个地方,但帮你自己一个忙,不要使用
Net::IRC
…它已经死在水里7年了

新的建议是使用
POE::Component::IRC
或某种变体。虽然
POE::Component::IRC
为您提供了对bot功能的最大控制、灵活性和可见性,但更简单的方法是
bot::BasicBot


希望这能有所帮助。

此外,我相信你以前在什么地方见过和听到过这句话,但请帮自己一个忙,不要使用
Net::IRC
…它在自我宣传的7年中已经死在水里了

新的建议是使用
POE::Component::IRC
或某种变体。虽然
POE::Component::IRC
为您提供了对bot功能的最大控制、灵活性和可见性,但更简单的方法是
bot::BasicBot


希望这能有所帮助。

我从CPAN收到这样一条消息:
由于在Makefile.PL第28行第1行没有确认而拒绝安装。警告:命令[/usr/bin/perl Makefile.PL]
当它询问时,你是否回答了是(或它要求你做的任何事情)?你是用“perl Makefile.PL”开始的吗?不需要(但我通常直接使用IO::Socket)。使用“perl Makefile.PL”运行libnet安装。您可以在从CPAN下载lib归档文件后找到该文件。我从CPAN收到以下消息:
由于在Makefile.PL第28行第1行没有确认而拒绝安装。警告:命令[/usr/bin/perl Makefile.PL]未成功
当它询问时,您是否回答是(或它要求您做的任何事情)?您是否从“perl Makefile.PL”开始?无需回答(不过我通常直接使用IO::Socket)。使用“perl Makefile.PL”运行libnet安装。从CPAN下载lib归档文件后,您可以找到该文件。这将是另一个问题。将其作为问题而不是注释提问,这样人们可以更容易地找到答案。(但作为10的入门,get,然后cpanm Net::IRC,然后阅读说明。)这将是另一个问题。将其作为一个问题而不是评论来提问,这样人们可以更容易地找到答案。(但作为10的开始,get,然后cpanm Net::IRC,然后阅读说明。)但是我如何更改我的代码以使其与
POE::Component::IRC
一起工作?有几个
POE::Component::IRC
IRC bot教程,我很惊讶您居然发现了一个不适用于此模块的教程。幸运的是,您现有的示例中没有太多代码,移植也不会是一个太大的挑战。相同的原则Ciple适用于注册某些与IRC相关的事件的挂钩,并编写服务于这些挂钩/事件的函数。此外,还可以在此处找到示例POE::Component::IRC bot:,位于的文档非常感谢。此外,我还改进了答案的格式:)但是我如何更改我的代码以使其与
POE::Component::IRC
一起工作?有几个
POE::Component::IRC
IRC bot教程,我很惊讶您居然发现了一个不适用于此模块的教程。幸运的是,您现有的示例中没有太多代码,移植也不会是一个太大的挑战。相同的原则Ciple适用于注册某些与IRC相关的事件的挂钩,并编写服务于这些挂钩/事件的函数。此外,还可以在此处找到示例POE::Component::IRC bot:,位于的文档非常感谢。此外,我还改进了答案的格式:)