Istruzioni condizionali
Quando si parla di istruzioni condizionali o di costrutti per il controllo del flusso, chi conosce un minimo di sintassi dello scripting in qualsiasi linguaggio pensa immediatamente ad if ed else. Essi consentono di intervenire sul flusso delle istruzioni di un applicativo a seconda che una determinata condizione sia verificata o meno.
La sintassi da utilizzare per effettuare controlli su condizione tramite if ed else è la seguente:
if (condizione) {
istruzioni da eseguire se si verifica la condizione
} else {
istruzioni da eseguire se non si verifica la condizione
}
Se (if) la condizione delimitata dalle parentesi tonde viene verificata (è TRUE), allora verrà eseguito il blocco d'istruzioni successivo all'if e racchiuso fra le parentesi graffe; altrimenti (else) verrà eseguito il blocco di istruzioni successivo ad else.Una volta passati i controlli stabiliti nei due blocchi, il flusso dei dati riprenderà con le istruzioni successive alla chiusura dell'ultima parentesi graffa.
else è un costrutto opzionale, possiamo inserirlo o meno a seconda che si voglia o no stabilire un'istruzione alternativa a quella indicata per la condizione.
In mancanza di un'alternativa, se viene soddisfatta la clausola stabilita nella condizione verrà eseguito il blocco di istruzioni delimitato dalle parentesi graffe successive alla condizione, quindi, l'esecuzione dell'applicativo proseguirà seguendo le istruzioni succesive alla parentesi graffa chiusa. In caso contrario, se la condizione è FALSE, allora le istruzioni racchiuse tra le parentesi graffe non verranno eseguite ed il flusso continuerà ignorando quanto stabilito per la condizione.
L'istruzione condizionale if può essere espressa anche in modi differenti con grandi vantaggi in termini di quantità di codice da digitare; un caso particolare è quello riferito alla sintassi con notazione post-fissa, per cui gli elementi del costrutto potranno presentarsi nel modo seguente:
istruzione if condizione;In questo caso non verranno utilizzate parentesi, nè tonde nè graffe, quindi, la singola istruzione verrà eseguita soltanto nel caso in cui si verifichi la condizione stabilita.
Volendo proporre un esempip di applicazione pratica delle istruzioni di controllo, è importante dire che esse possono essere utilizzate anche in associazione ad operatori per affinare la condizione stabilita:
if (!$var)
# ! richiede l'inesistenza di $var
{ print "Prima condizione verificata\n"; }
# invece se
elsif ($var == $var_1)
{ print "Seconda condizione verificata\n"; }
# invece se
elsif ($var == $var_2)
{ print "Terza condizione verificata\n"; }
# se non si verificano le condizioni:
else { print "Nessuna condizione verificata\n"; }
Nello script appena proposto abbiamo alcune importanti novità da segnalare: la condizione è stabilità dall'operatore di negazione "!"; l'istruzione subalterna alla prima condizione comprente una newline ("\n") che consente di stabilire una nuova linea una volta stampato a video il risultato.Abbiamo poi due condizioni introdotte dal costrutto elsif che saranno vere soltanto se la prima condizione sarà verificata.
Infine, else propone un'istruzione alternativa che produrrà il suo output soltanto dopo che (e se) i precedenti controlli avranno restituito FALSE.







