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


Home Pagina 2 di 15