Perl/Funzioni: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 5:
# un nome (assimilabile ad un'etichetta)
# eventuali parametri
# eventuali valori di ritorno
per indicare una funzione il Perl adotta la parola chiave sub (in inglese subrutine).
 
 
sub <nome>
Line 14 ⟶ 16:
esempio :
<source lang=perl>
sub miafunzione
{
Line 20 ⟶ 23:
miafunzione;
</source>
 
nell'esempio indicato la funzione "miafunzione" non usa parametri e non esplicita un valore di ritorno.
I parametri passati ad una funzione sono variabili.
Occorre però prestare particolare attenzione al fenomeno della "linearizzazione" nel caso di array e hash. '''TODO:<-- riferimento a linearizzazione -->'''
 
 
== Il vettore particolare @_ ==
Quando una funzione è invocata, eventuali parametri sono messi nel vettore particolare @_.
Questa funzionalità è automatica pertanto ci si ritroverà queste informazioni in questo vettore.
 
Nel caso precedente che si è invocato miafunzione senza parametri pertanto @_ è vuoto.
 
L'interprete Perl applica a questa vettore speciale qualsiasi funzione che vuole o no dei parametri.
quindi se si vedono nel codice comandi tipo
 
<source lang=perl>
@a = shift ;
</source>
 
in realtà è come se il codice scritto fosse:
 
<source lang=perl>
@a = shift @_;
</source>
 
== I parametri ==