Corso di Perl

Le variabili

 

Ogni programma che si rispetti svolge in genere azioni abbastanza complicate da aver bisogno di memoria, cioè da aver bisogno di ricordarsi qualcosa. Il meccanismo a cui si ricorre in questi casi sono le variabili.
Potete pensare ad una variabile come ad un pezzetto (molto piccolo) della vostra RAM, isolato dal resto e con un nome ben preciso. L'analogia a cui si ricorre di solito e' quella di una celletta o di una scatolina, dove si può inserire un pezzetto di carta con sopra scritta l'informazione da memorizzare. La scatolina ha un nome, e quando vogliamo riferirci al suo contenuto basta usare il suo nome.
Nel linguaggio Perl, c’è in pratica un solo tipo fondamentale di variabile, chiamato scalare, e un paio di tipi derivati chiamati array. In questa lezione ci occuperemo delle variabili scalari, che sono le più semplici.

Le variabili scalari

Una variabile scalare si riconosce dal prefisso $ (dollaro), con di seguito scritto il nome della variabile stessa. Il nome può essere una combinazione qualunque di caratteri alfanumerici. Alcuni esempio di nomi validi sono $a, $pippo, $anno1999, $direzione_nord. Ma "$ciao a tutti" no, perché contiene degli spazi, che non sono ammessi nel nome.
In una variabile scalare possiamo mettere più o meno quello che ci pare: numeri interi o decimali, stringhe (cioè sequenze di caratteri alfanumerici), valori vero/falso eccetera. In gergo tecnico si dice che queste variabili sono senza tipi. Il contenuto della variabile verrà interpretato a seconda del contesto. Facciamo un esempio:

$a=2;
$b=10;
$somma = $a + $b;
$aggiunta = $a . $b;
$somma2 = $aggiunta + $a;
print "Somma: $somma\n";
print "Aggiunta: $aggiunta\n";
print $somma2 ."\n";

Questo e' piccolo un programma Perl che esegue alcune operazioni e scrive il risultato. Provate a scriverlo e ad eseguirlo (ormai dovreste essere in grado di farlo da soli), e dovreste vedere queste righe:

Somma: 12
Aggiunta: 210
212

Analizziamo adesso le singole istruzioni. Tenete presente che, a meno non si specifichi diversamente, il Perl esegue le vostre istruzioni in sequenza, una riga alla volta.

La prima riga è un’assegnazione: l’ordine al Perl è di creare una variabile chiamata $a, e di metterci dentro il numero 2. Il punto e virgola finale serve a terminare l'istruzione (quasi tutte le righe di un programma Perl terminano con un punto e virgola). La seconda riga fa lo stesso con una variabile chiamata $b, mettendoci dentro il numero 10.

Nella terza le cose sono ancora abbastanza semplici: le variabili $a e $b vengono sommate (in realtà, vengono sommati
i loro contenuti), e il risultato viene messo nella variabile $somma appena creata. Poiché sappiamo che $a contiene 2, e $b contiene 10, possiamo indovinare che a questo punto $somma conterrà 12.

La quarta riga fa una cosa simile a quella precedente, ma invece di usare l’operatore "+" (somma), usa l’operatore "." (unione di stringhe). Ricordate cosa dicevamo a proposito dell’interpretazione del contenuto? L’operatore "+" assume che le variabili contengano un numero, e somma questi numeri. Invece, l’operatore "." assume che le variabili contengano delle stringhe, e crea una nuova stringa affiancando le due di partenza. Perciò nella variabile $aggiunta viene messo il risultato di questa operazione, cioè la stringa "210", che non è un numero! E’ semplicemente una stringa di tre caratteri. L'operatore "." tratta lettere, numeri e punteggiatura come singoli caratteri senza significato.

Adesso un altro trucchetto: la quinta riga usa di nuovo il "+", sulle due variabili $a e $aggiunta. Sappiamo che $a
contiene il numero 2, mentre $aggiunta contiene la stringa "210". Il fatto che "210" non sia un numero non influenza per niente l'operatore "+", il quale procede a convertire "210" in un numero, lo somma a l 2 e mette il risultato nella variabile $somma2.

Le tre istruzioni "print" finali scrivono sullo schermo il risultato. La sintassi di un’istruzione print è:

print espressione;

Dove espressione è una qualunque cosa che possa essere tradotta in stringa. Quindi le nostre tre print e quella del nostro primo programmino sono tutte valide.

Notate come, nelle prime due istruzioni print, sia contenuto il nome di una variabile dentro la stringa da stampare. Questa variabile viene, come si dice, interpolata, cioè invece del suo nome viene usato il suo contenuto. Se questo contenuto è un numero, viene tradotto in una stringa. Infine la stringa viene stampata sullo schermo, compreso il ritorno a capo "n".
La terza print è diversa: troviamo come espressione l’operazione $aggiunta . "n", cioè usiamo di nuovo l’operatore ".", che prende il contenuto di $somma2 (convertendolo nel frattempo in stringa) e lo unisce all'altra stringa "n" (ritorno a capo). Il risultato non viene messo da nessuna parte, ma usato solo per l’istruzione print e poi dimenticato. Se avessimo voluto conservarlo, avremmo dovuto creare un altra variabile dove metterlo.

Nella prossima puntata impareremo a combinare più variabili scalari per formare degli array.

 

Torna all'indice Generale del corso di Corso di Perl di Software Planet