Paradigma di lavoro

Abbiamo iniziato il corso con qualche esempio pratico, rimandando l'introduzione teorica. Colmiamo adesso questa lacuna precisando alcuni aspetti teorici che riguardano la programmazione in Perl. Perl è un linguaggio molto permissivo, ovvero concede molta libertà al programmatore: ciò rappresenta un possibile problema di sicurezza, perché troppa libertà significa essere potenzialmente in grado di creare qualche problema ("da un grande potere deriva una grande responsabilità", Stan Lee).

Per questo motivo solitamente gli script Perl iniziano con queste due direttive

use strict ;
use warnings ;

La prima direttiva (use strict) termina l'esecuzione nel caso vengano trovati dei comandi "pericolosi", mentre la seconda (use warnings) produce delle segnalazioni utili durante l'esecuzione del codice.

Sintassi

Precisiamo adesso alcuni aspetti della sintassi. Perl permette una sintassi flessibile. Ad esempio le chiamate alle funzioni possono essere espresse con o senza parentesi, con o senza virgole di separazione tra i parametri (come in PHP). Vediamo alcuni esempi considerando la funzione print

$foo = "Ciao Mondo!" ;
print($foo, "\n") ;
print $foo, "\n" ;
print "Prima riga
Seconda riga\n" ;

Che produce come risultato

Ciao Mondo!
Ciao Mondo!
Prima riga
Seconda riga

Notiamo in particolare come il line break venga rispettato dell'interprete perché incluso tra doppi apici: questo è un effetto dell'interpolazione delle stringhe in Perl.

Vediamo adesso un esempio di utilizzo della variabile riservata $_

$_ = "Stringa di default\n" ;
print ;

che stampa

Stringa di default

questo perché la variabile $_ viene assunta come parametro di default nella chiamata alla funzione print.

Variabili globali e locali

Inserendo la direttiva use strict nei nostri script potremmo avere qualche difficoltà di esecuzione. Ad esempio, inserendo tale direttiva negli esempi qui sopra molto probabilmente si otterrà un errore di questo genere

Global symbol "$foo" requires explicit package name at tutorial-05.pl line 6.

Ciò accade perché lavorando con la direttiva strict tutte le variabili sono trattate come globali, mentre chiaramente foo non lo è. Per indicare all'interprete che la variabile è locale usiamo la keyword my. Il codice scritto più sopra diventa quindi

my $foo = "Ciao Mondo!" ;
print($foo, "\n") ;
print $foo, "\n" ;
print "Prima riga
Seconda riga\n" ;

In questo modo lo script dovrebbe girare senza alcun errore.



Home Pagina 5 di 15