Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [Perl]Script in loop

  1. #1
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206

    [Perl]Script in loop

    ciao raga
    ho 'sto codice:
    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
    codice:
    $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?

  2. #2
    Utente di HTML.it L'avatar di Aki
    Registrato dal
    Dec 2002
    Messaggi
    2,206
    errore risolto
    così:
    codice:
    ...
    if($c=~/[iI]/){print "Ciao";}
      if($c=~/[rR]/){print "Pippo";}
      if($c=~/[uU]/){exit(0);}
    }

  3. #3
    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);}
    }
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.