Lezioni pratiche sulla programmazione in Perl

Interagire con il programma
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.