|
Abbiamo già visto
l'istruzione print, che ci permette di stampare l'output dei nostri
script. Questa istruzione è piuttosto potente e permette di formattare
l'output in vari modi utilizzando una serie di caratteri di controllo
che vedremo in maggiore dettaglio nelle prossime pagine.
Le variabili scalari in Perl sono precedute da un simbolo ``$'', in
modo da distinguerle da liste ed array. Il Perl non distingue tra
variabili numeriche e stringhe: su entrambe è consentito fare le
stesse operazioni, lasciando all'interprete il compito di assegnare un
valore numerico o stringa al contenuto delle variabili a seconda del
contesto in cui queste sono usate.
Il seguente script è una banale evoluzione dello script precedente:
#!/usr/local/bin/perl
# semplice script di esempio
$nome = "Marco";
print "Buongiorno $nome\n";
Il cancelletto è utilizzato in Perl per introdurre delle linee di
commento; quindi dopo un simbolo ``#'' potete inserire ogni tipo di
commento che possa aiutare voi o qualcun altro a comprendere anche a
distanza di tempo il funzionamento dello script. L'interprete Perl
eviterà di analizzare e di tradurre ogni parola che segue il simbolo
``#'' fino alla fine della riga.
L'istruzione complementare a quella di stampa è quella di lettura, che
consente di assegnare alle variabili dello script dei valori digitati
dall'operatore o letti da un file. Il seguente programmino è una
ulteriore evoluzione dell'esempio precedente e fa uso dell'istruzione
di lettura:
#!/usr/local/bin/perl
# un altro esempio elementare
print "Come ti chiami? ";
$nome = <STDIN>;
print "Buongiorno $nome\n";
Lanciando in esecuzione quest'ultima versione del programma salve.pl,
il sistema ci chiede di inserire il nostro nome mediante la tastiera
del terminale, e quando avremo battuto RETURN per segnalare la fine
del nostro inserimento, visualizzerà il consueto messaggio di
buongiorno. Il simbolo <STDIN> è infatti l'handler del file di input
standard, un file sempre aperto in lettura durante tutta l'esecuzione
del programma e che rappresenta generalmente la tastiera del terminale
dell'utente. Con l'istruzione $nome=<STDIN> si assegna alla variabile
$nome la linea di input proveniente dal canale di input standard,
compreso il carattere di ``fine riga''.
$ salve.pl
Come ti chiami? Marco
Buongiorno Marco
$ _
È possibile redirigere il contenuto di un file attraverso il canale
dello standard input utilizzando le funzionalità di redirezione e di
piping messi a disposizione dalla shell di comandi del sistema
operativo. Ad esempio supponiamo di aver creato un file di testo
(chiamato nome) con il nostro editor, in cui abbiamo inserito soltanto
una parola, ad esempio ``Marco''. Allora potremo redirigere il
contenuto di questo file verso il canale di input standard del nostro
programma, nel seguente modo:
$ salve.pl < nome
Come ti chiami? Buongiorno Marco
$ _
Allo stesso modo in cui redirigiamo l'input standard, possiamo anche
redirigere verso un file il canale di output standard, in modo da
memorizzare su file ogni messaggio che il nostro programma avrebbe
altrimenti visualizzato sullo schermo del terminale. Il seguente
comando non produce alcun output:
$ salve.pl < nome > output
$ _
Infatti ciò che il programma doveva leggere in input gli è stato
passato attraverso il file nome, mentre l'output è stato scritto nel
file output.
|