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.
+=
, -=
, *=
, /=
, .=
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.