PDA

Visualizza la versione completa : [Perl]Script in loop


Aki
19-01-2005, 16:35
ciao raga
ho 'sto codice:


#!/usr/bin/perl

while(1)
{
print "Scegli cosa fare:";
print "\nInserisci\t\ti";
print "\nRicerca\t\tr";
print "\nAnnulla\t\tu\n";
print "La scelta è: ";
$c=<STDIN>;
if($c=~/[nI]/){print "Ciao";}
if($c=~/[nR]/){print "Pippo";}
if($c=~/[nU]/){exit(0);}
}

credo sia piuttosto chiaro, però mi và in loop alla riga


$c=<STDIN>;

cioè eseguo il programma da prompt e se premo una qualsiasi delle 3 lettere, riparte a chiedere la scelta
che può essere?
cosa sbaglio?

Aki
19-01-2005, 16:38
errore risolto
così:


...
if($c=~/[iI]/){print "Ciao";}
if($c=~/[rR]/){print "Pippo";}
if($c=~/[uU]/){exit(0);}
}

shishii
19-01-2005, 17:33
ok ma non è un metodo molto efficiente. Non si devono usare le RE quando non è necessario. Io scriverei:

chomp($c=<STDIN>); # elimina il \n finale
if($c eq 'i' or $c eq 'I'){print "Ciao";}
if($c eq 'i' or $c eq 'I'){print "Pippo";}
if($c eq 'i' or $c eq 'I'){exit(0);}
}

oppure:

chomp($c=<STDIN>); # elimina il \n finale
if(lc($c) eq 'i'){print "Ciao";}
if(lc($c) eq 'i'){print "Pippo";}
if(lc($c) eq 'i'){exit(0);}
}

Loading