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).
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
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.