Altri operatori

Oltre agli operatori condizionali, discussi nella lezione precedente, Perl utilizza i normali operatori aritmetici (+, -, *, /, %), sui quali non dovrebbe essere necessario soffermarsi. Sono ovviamente disponibili gli operatori unitari di incremento e decremento (cioè $n++ e $n--, che equivalgono rispettivamente alle istruzioni $n = $n + 1 e $n = $n - 1).
Oltre a questi possiamo usare gli operatori di concatenazione, moltiplicazione di stringhe e di intervallo. Vediamo il loro funzionamento.

# Verifica funzionamento operatori avanzati
my $uno 	= "Ciao " ;
my $due 	= "mondo!" ;
print "\nOperatori avanzati:\n\n" ;
print '.$uno.$due. = '.$uno.$due."\n" ;
print '.$uno x 3   = '.($uno x 3)."\n" ;
print "Range! " 	for 1..3 ;
print "\n" ;

eseguendo questo snippet si ottiene

.$uno.$due. = Ciao mondo!
.$uno x 3   = Ciao Ciao Ciao
Range! Range! Range!
Il risultato qui sopra utilizza alcuni degli operatori che abbiamo già visto nelle lezioni precedenti.

Si hanno infine gli altri operatori con assegnazione , ovvero +=, -=, *=, /=, .= eccetera. Trattandosi di operatori standard non ci soffermiamo sul loro utlizzo, che diamo per assodato. Precisiamo solamente che in Perl l'uso di questi operatori è esteso a tutte le operazioni possibili, incluse quelle booleane (cosa non sempre vera). Ad esempio

# Verifica funzionamento operatori con assegnazione (booleani)
# Cambiare il valore della variabile $true per eseguire i test
my $true	= 1 ;
my $and		= 1 ;
my $or		= 1 ;
my $not		= 1 ;
$and       &= $true ;
$or       ||= $true ;
$not       != $true ;
print "\nOperatori con assegnazione (booleani):\n\n" ;
print '$and    = '.$and."\n" ;
print '$or     = '.$or."\n" ;
print '$not    = '.$not."\n" ;

che ritorna

Operatori con assegnazione (booleani):

$and    = 1
$or     = 1
$not    = 1

Il modo migliore di comprendere l'utilizzo dei vari operatori è quello di fare un po' di prove. Ad esempio, editando l'ultimo script (quello relativo agli operatori booleani con assegnazione) e settando il valore $true = 0 si ottiene

Operatori con assegnazione (booleani):

$and    = 0
$or     = 1
$not    = 1

questo perché l'operazione $and &= $true corrisponde all'istruzione $and = $and & $true, che in questo caso restituisce 0 (false), poiché $and = 1 e $true = 0.

Input e output

La comunicazione con i dispositivi di input ed output avviene per mezzo dei simboli <STDIN>, STDOUT e STDERR.
Ad esempio, se volessimo gestire l'inserimento di un dato da linea di comando, possiamo scrivere:

# Esempio di inserimento dati
print "\nDigita un numero: ";
my $var = <STDIN> ;
print "\nHai digitato: $var\n" ;

Nella prossima lezione vedremo come gestire la lettura e scrittura di risorse dal File System, in modo da avere un controllo più completo sui flussi di input ed output.



Home Pagina 9 di 15