Newsgroup: it.comp.lang.perl
Titolo: syntax error

 Ciao a tutti!
Sono nuovo, sia del NG che del perl, quindi chiedo venia...
Passo subito al problema di cui all'oggetto... sto' cercando di imparare il 
perl, e l'idea e' di realizzare un semplice bot per gestire un canale irc. 
Essendo un neofita, vado avanti per piccoli passi, testando praticamente il 
codice (poco per ora...) praticamente riga per riga. Dopo aver impazzito un 
poco per digerire sommariamente l'uso delle esperssioni regolari, pensavo di 
andare "relativamente tranquillo" con il resto, essendo si, digiuno di perl, 
ma comunque avvezzo alla programmazione di script. Invece mi sono imbatutto 
in un errore di sintassi che non riesco a capire. Questo e' il codice:
  use IO::Socket;
  $server = IO::Socket::INET->new(PeerAddr=>'mio.server.itt',
                             PeerPort=>'6667',
                             Proto=>'tcp',
                             Timeout=>'30') || print "Error! $!\n";
 $nick = "Arcang3l";
 $nickpass = "miapassi";
 $user = "heaven portiere e guardiano ufficiale";
  print $server "USER $user\r\n";
  print $server "NICK $nick\r\n";
  print $server "ns identify $nickpass\r\n";
  print $server "JOIN #liftman\r\n";
  while($answer = <$server>)
  {
  print $answer;
  if (($answer =~ /(KICK)\s(.*)\s($nick)/))
  {
  print $server "JOIN $2\r\n";
  }
  if (($answer =~ /(MODE)\s(.*)\s(\+o\s$nick)/))
  {
  print $server "PRIVMSG $2 :  4Grazie 1000 per la rotella \" 8@ 4\"\r\n";
  }
  #  if (($answer =~ /(INVITE)\s($nick)\s\:(.*)/))
  #(
  #print $server "JOIN $3\s\n";
  #)
    if($answer =~ m/^PING (.*?)$/gi) #Answer ping requests
  {
  print $server "PONG ".$1."\r\n";
  }
  }
cosi' com'e' funziona, nel senso che si connette, rientra se viene "kickato" 
e ringrazia se gli viene dato lo status di operatore sul canale. Se pero' 
tolgo i # da queste righe:
 if (($answer =~ /(INVITE)\s($nick)\s\:(.*)/))
  (
 print $server "JOIN $3\s\n";
  )
ricevo questo messaggio:
C:\Documents and Settings\rolando\Desktop\perl\working>perl -w 
bot.pl
syntax error at 
bot.pl
 line 29, near ")
  (
  "
syntax error at 
bot.pl
 line 35, near "}"
Execution of 
bot.pl
 aborted due to compilation errors.
se commento la riga 29 (print $server "JOIN $3\s\n";) l'errore resta, ma 
spostato alla riga successiva.. Ho provato e riprovato a cancellare e 
riscrivere da capo ma la situazione resta la stessa.. Per scrivere il codice 
uso PExpress, tra l'altro non funziona l'indentazione automatica, e non 
capisco se e' un problema di setting o se proprio non la fa'...
-- 
Ciao!
Se hai voglia e tempo visita il mio sitarello!
www.moredifficult.org
www.liftman.org
http://florezia.myminicity.com
 

Così "a naso" credo che ci vadano delle parentesi graffe invece di
quelle tonde
if (condizione) { blocco istruzioni }



ops... ora che ho fatto la mia "bella figura", posso sparire  dalla 
circolazione, non prima di aver provveduto ad acquistare un paio di occhiali 
nuovi..... E' proprio vero, che piu' semplici sono i problemi e piu' 
difficile e' risolverli :-) grazie mille cmq, ciao!


A dirti la verità, a me talvolta accade di peggio


 A dirti la verità, a me talvolta accade di peggio
ah bhe'... :D


Se ti interessa, l'argomento "bot IRC" viene trattato in questa
presentazione:
http://www.slideshare.net/polettix/perlit-wants-your-bot-presentation
compreso collegamento ai sorgenti.
Ciao,
   Flavio.
liftman ha scritto:
