2011-01-25 12 views
0

私はProgramming IRC Bots In Perlというチュートリアルに従い、Abjectsサーバで自分のチャンネル用の簡単なIRCボットを作成していますが、問題は奇妙なエラーが発生していることです。
./bot.plコマンドが見つかりません:行1:Perlで作成されたIRCボットでの単純なエラー

ネイサン・Camposs-のMacBook Proの-:デスクトップネイサンの$ ./bot.pl
./bot.pl使用を見てみましょう: 4行目:私の:コマンドが見つからない
./bot.pl:8行目:予期しないトークン('
./bot.pl: line 8:
私の$でCONN = $ irc-> newconn(」
ネイサン・Camposs-の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(); 

これを修正するにはどうすればよいですか?

答えて

2

さらに、あなたはどこかでこれを見て聞いたことがあると思いますが、自分自身に好意を持ち、Net::IRCを使用しないでください...自己宣伝のために水で死んで7年です。

POE::Component::IRCまたはいくつかの変形を使用することをお勧めします。 POE::Component::IRCは、ボットの機能の制御、柔軟性、可視性を最大限に引き出しますが、はるかに簡単なアプローチはBot::BasicBotです。

希望に役立ちます。

+0

しかし、 'POE :: Component :: IRC'で動作するように私のコードをどのように変更できますか? –

+0

いくつかの 'POE :: Component :: IRC' IRCボットチュートリアルがありますが、私はあなたが実際にこのモジュール用ではないものを見つけたことに驚いています。幸運なことに、既存の例ではコードがあまり多くなく、移植もあまり難しくありません。特定のIRC関連イベントへのフックの登録と、それらのフック/イベントを処理する関数の作成にも同じ原則が適用されます。 –

+2

同様に、サンプルPOE :: Component :: IRCボットはhttp://www.supportforums.net/showthread.php?tid=10989、http://search.cpan.org/~のドキュメントにあります。 hinrik/POE-Component-IRC-6.52/lib/POE/Component/IRC.pm –

2
#!/usr/bin/perl 

トップです。/bin/shは一般にPerlを理解していませんが、これはあなたが見ているものです。

また、私が推薦する:

use strict; 
use warnings; 
+0

私はこれを得ました:http://freetexthost.com/wdmcihuvxx –

+0

それは別の質問でしょう。コメントではなく質問として質問して、人々がより簡単に回答を見つけることができるようにします。 (しかし、10の初心者として、http://cpanmin.us/、cpanm Net :: IRCを入手して指示を読んでください。) – ijw

1

を参照するに、あなたはネットライブラリを逃しています。どのOSに依存しているのかは、複数の方法で取得することも、CPANだけを使用することもできます。

+0

私はこのメッセージをCPAN: 'Makefile .PL行28、行1. 警告:コマンド[/ usr/bin/perl Makefile.PL]で成功しません。 ' –

+0

尋ねられたときに「はい」と答えましたか? – Markku

+0

ええ、私ははいと答えた –

関連する問題