Gestione variabili
Poiché gli identificativi delle variabili non vanno dichiarati, ma vengono riconosciuti dal suffisso $
,
in alcuni casi la sintassi potrebbe essere ambigua. Consideriamo il seguente esempio
$id = "Customer ID: " ; $id42 = "Another variable" ; # Risultato non voluto: l'inteprete riconosce la variabile "id42" print "$id42\n" ; # Risultato voluto: l'inteprete riconosce solo la variabile "id" print "${id}42" ;
In questo caso la variabile id
è stata definita per memorizzare un'etichetta usata come prefisso, tale etichetta
contiene il valore "Customer ID : ", pensato per ottenere come risultato finale "Customer ID: 42". Lo strategemma però non
funziona, perché concatenando tale variabile con il numero 42 si ottiene (senza volerlo) il nome di un'altra variabile, di cui
si ignora l'esistenza (ad esempio per disattenzione del programmatore). Per evitare ambiguità di questo tipo è possibile
racchiudere il nome delle variabili tra parentesi graffe. Eseguendo il codice qui sopra si ottiene infatti:
Another variable Customer ID: 42
Variabili non esistenti vengono comunque "riconosciute". Ad esempio, stampando il valore di una variabile scelta a "casaccio" (ad esempio
$xyz
) si ottiene comunque un risultato, che a seconda del contesto viene interpretato come 0
(zero numerico)
o ""
(stringa vuota). Approfondiremo questo aspetto nelle prossime lezioni.
Variabili riservate
Non è possibile assegnare ad una variabile Perl un nome qualsiasi, perché alcuni identificativi sono riservati. Ad esempio, le variabile il cui
nome (dopo il simbolo $) iniziano con un carattere speciale (come _
!
?
ecc.) sono riservate.
Il caso più eclatante è quello della variabile $_
, usata come parametro di default da molte funzioni Perl.
Alcune delle variabili riservate più note sono:
$$
: PID del programma$<
: ID dell'utente (che ha eseguito il programma)$0
: nome del programma$!
: stato dell'ultima chiamata$?
: stato di ritorno dell'ultima esecuzione di un processo esterno$@
: ultimo messaggio di errore