Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di preben
    Registrato dal
    Mar 2008
    Messaggi
    78

    [perl] array di stringhe

    Sono agli inizi con il perl, ed ecco il mio primo problema: vorrei costruire un array di stringhe, e non sapendo a priori la dimensione, ho pensato di farlo con un ciclo while, ma, dopo l'inserimento del primo elemento il programma termina.
    Vi posto il codice:
    codice:
    #!/usr/bin/perl
     #creazione e manipolazione di un array di stringhe  
    $risposta = "s"; 
    while($risposta eq "s"){   
    print("Inserire nome: ");   
    $nome = <STDIN>;  
     push @nomi, $nome;   
    print("Vuoi continuare? (s-n): ");   
    $risposta = <STDIN>;  
     if($risposta ne "s"){    
     last;   
     }
    }  
    #visualizzazione output 
    $num_elementi = scalar(@nomi); 
    #restituisce numero elementi array 
    for($i = 0; $i < $num_elementi; $i++){   
    print("Hai inserito $nomi[$i]\n"); 
    }
    Mi sapete dire dov'è che sbaglio?
    Ciao e grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    metti il chop su STDIN altrimenti la variabile contiene anche l'invio (\r)

    #!/usr/bin/perl
    #creazione e manipolazione di un array di stringhe
    $risposta = "s";
    while($risposta eq "s"){
    print("Inserire nome: ");
    $nome = <STDIN>;
    chop $nome;
    push @nomi, $nome;
    print("Vuoi continuare? (s-n): ");
    $risposta = <STDIN>;
    chop $risposta;
    if($risposta ne "s"){
    last;
    }
    }
    #visualizzazione output
    $num_elementi = scalar(@nomi);
    #restituisce numero elementi array
    for($i = 0; $i < $num_elementi; $i++){
    print("Hai inserito $nomi[$i]\n");
    }

  3. #3
    Utente di HTML.it L'avatar di preben
    Registrato dal
    Mar 2008
    Messaggi
    78
    Ok funziona!
    Mi spieghi, per piacere a cosa serve la funzione chop?
    Ciao e grazie per l'aiuto.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    quando tu inserisci STDIN scrivi il valore e premi l'invio che per il codice farà parte della stringa.
    Il comando chop toglie l'ultimo carattere della stringa, quindi l'invio.

  5. #5
    Utente di HTML.it L'avatar di preben
    Registrato dal
    Mar 2008
    Messaggi
    78
    Ok, ora è tutto chiaro.
    Grazie ancora.
    Ciao!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.