Fino ad oggi ci siamo limitati a scrivere dei
piccoli programmi Perl statici, che si limitavano a stampare sul
video l'impostazioni da noi predefinite. Adesso cercheremo di
ampliare le nostre conoscenze in modo da creare uno script in grado
di poter interagire con il suo esecutore, grazie all'impiego di un
operatore speciale detto parentesi angolari, capace di poter leggere
i dati immessi dalla tastiera, rappresentato dalla sigla <STDIN>.
Ecco, come ormai solito, un esempio pratico:
print "Inserisci il tuo nome!\n";
$nome = <STDIN>;
# ti da' la possibilità di inserire
# il tuo valore da tastiera
print "Inserisci la tua
età\n";
$eta = <STDIN>;
chomp ($nome);
chomp ($eta);
# rimuove il carattere escape \n
# dalle stringhe ottenuto con la pressione d'invio
print "Il tuo nome è $name e hai
$eta anni";
Ora se andate ad eseguire il programma da una finestra del Dos,
l'esecuzione si bloccherà in attesa di un vostro imput chiedendovi
appunto di inserire il vostro nome, dopo aver immesso il vostro
nome, sarà necessario cliccare su invio, per permettere al
programma di continuare la sua esecuzione, con la pressione d'invio
però avrete creato anche un carattere escape di più che toglieremo
mediante il comando chomp, dopo di che allo stesso modo vi verrà
chiesto d'inserire la vostra età, ed infine otterrete per risultato
una stringa del tipo "Il tuo nome è Giordano e hai 24
anni".
Fate attenzione a non confondere chomp con chop, nella scrittura
dei vostri script, in quanto se pur in questo caso non succede
nulla, in altri potrebbe portare dei risultati spiacevoli. Ad
esempio:
$a = "Giordano\n";
chomp ($a);
chomp ($a);
# il risultato sarà sempre il medesimo
# in quanto il comando chomp si limita
# a cancellare il carattere escape \n
# mentre
chop ($a);
chop ($a);
# il comando chop si occupa di
cancellare
# l'ultimo carattere della stringa sia esso
# escape che alfanumerico otenendo prima
# Giordano e poi Giordan
Per esercizio, provate a riscrivere l'espressione di ieri, dando
però la possibilità di inserire il valore di Q e S da tastiera, ed
in fine in base alle nozioni raccolte fino ad oggi stampare un
numero stringhe N, inserito da tastiera, con il risultato
dell'espressione.