Istruzioni di base

Guida a Perl
di M. Liverani

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.

© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /perl/istruzioni.asp?print=ok