Lezioni pratiche sulla programmazione in Perl

Numeri
Nel linguaggio Perl i numeri sono rappresentati per mezzo di simboli, di naturale e facile interpretazione, detti anche più in generale letterati. Di seguito sono riportati alcuni esempi di numeri:


18                   
# numero intero positivo
1_000_000   
# un milione, si noti come il carattere sottolinea venga ignorato dal Perl
-31                  
# numero intero negativo
7.023              
# numero in virgola mobile
7.023e4         
# vale 7,023 x 104
01215             
# numero ottale intero positivo
0x0ff812         
# numero esadecimale intero positivo

Una delle comode caratteristiche del Perl è che il programmatore non deve preoccuparsi di valori interi, decimali a singola o a doppi precisione, in quanto l'interprete Perl tratta tutti i valori numerici allo stesso modo utilizzando la doppia precisione. Per quel che concerne invece i numeri ottali ed esadecimali, il Perl impiega le stesse identiche convenzioni del linguaggio C, pertanto verranno considerati numeri ottali tutti quelli che iniziano con il numero 0 e composti da cifre da 0 a 7, mentre verranno considerati esadecimali tutti quelli che iniziano con la sequenza 0x e sono composti da simboli tra 0-9, tra a-f e tra 0f).

Operazioni numeriche
Le operazioni numeriche gestite dal Perl corrispondono a tutte le operazioni più tradizionali: somma sottrazione, moltiplicazione, divisione, resto della divisione, potenze. Facciamo adesso alcuni esempi specificando due scalari numerici numero1 e numero2:

$numero1 = 20;
$numero2 = 4;

$a = $numero1 + $numero2;
# addizione vale 24
$b = $numero1 - $numero2;
# sottrazione vale 16
$c = $numero1 * $numero2;
# moltiplicazione vale 80
$d = $numero1 / $numero2;
# divisione vale 5
$e = $numero1 % $numero2;
#  resto della divisione vale 0
$f = $numero1 ** 2;
# potenza vale 202
$g = $numero1 ** $numero2;
# potenza vale 204

In questo primo esempio abbiamo ricavato altri scalari numeri secondari, mediante le più comuni operazioni, vengono detti scalari secondari, in quanto dipendono dal valore dei primi due, a questo punto possiamo proseguire nella scrittura del nostro script aggiungendo le seguenti stringhe:

print "\$numero1 vale $numero1\n"; 
print "\$numero2 vale $numero2\n"; 
print "-------------------------\n";
print "la somma tra $numero1 e $numero2 corrisponde a $a \n";
print "la sottrazione tra $numero1 - $numero2 corrisponde a $b \n";
print "il prodotto tra $numero1 e $numero2 corrisponde a $c \n";
print "la divisione tra $numero1 e $numero2 corrisponde a $d \n";
print "il resto della divisione tra $numero1 e $numero2 corrisponde a $e \n";
print "il valore di $numero1 elevato alla potenza di 2 corrisponde a $f \n";
print "il valore di $numero1 elevato alla potenza di $numero2 corrisponde a $g \n";

Salvate il tutto col nome di operazioni.pl, ed avviate il programma per la verifica. Il risultato dovrebbe essere il seguente:

$numero1 vale 20
$numero2 vale 4
----------------------------
la somma tra 20 e 4 corrisponde a 24
la sottrazione tra 20 e 4 corrisponde a 16
il prodotto tra 20 e 4 corrisponde a 80
la divisione tra 20 e 4 corrisponde a 5
il resto della divisione tra 20 e 4 corrisponde a 0
il valore di 20 elevato alla potenza di 2 vale 400
il valore di 20 elevato alla potenza di 4 vale 160000

Altre operazioni utilizzate frequentemente sono quelle di autoincremento "++" e di autodecremento "--", Con la prima si incrementa di uno il valore della variabile a cui si applica e con la second a la si decrementa. Alcuni esempi:

$a++
#  valore di $a prima di effettuare l'incremento
++$a
# valore di $a dopo aver effettuato l'incremento
$a--
#  valore di $a prima di effettuare il decremento
--$a
# valore di $a dopo aver effettuato il decremento

Operatori di confronto tra numeri
Anche gli operatori di confronto sono gli stessi che normalmente ci aspetteremo da valori numerici e cioè:

minore <
minore o uguale <=
uguale ==
diverso !=
maggiore >
maggiore o uguale >=

Facciamo un esempio:

$a=20;
$b=13;

$a < $b
# espressione falsa
$a <= $b
# espressione falsa
$a == $b
# espressione falsa
$a > $b
# espressione vera
$a >= $b
# espressione vera

Il concetto tra vero e falso in Perl viene considerato in modo pragmatico, proprio come il senso comune suggerisce.
Provate ad esercitarvi con queste poche nozioni a scrivere qualche semplice script come quello dell'esempio.