2011-01-25 2 views
0

Abjects 서버에서 내 채널에 간단한 IRC 봇을 만들려면 Programming IRC Bots In Perl이라는 자습서를 따르고 있습니다. 문제는 이상한 오류가 발생한다는 것입니다.
./bot.pl 발견되지 명령 행 1 :Perl로 만든 IRC 봇의 몇 가지 간단한 오류

나단 Camposs - 맥북 프로 : 데스크탑 나단 $의 ./bot.pl
./bot.pl 사용 살펴 보자 : 라인 4 : 내 : 명령을 찾을 수 없습니다
./bot.pl : 행 8 : 예기치 않은 토큰 ('
./bot.pl: line 8:
내 $ CONN = $ irc-> newconn ('
나단 Camposs - 맥북 - 프로 근처의 구문 오류 : 데스크탑 나단 $

다음 코드 사용

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

예, 답했습니다. –

관련 문제