Perl/Funzioni: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
+wikilink
Nessun oggetto della modifica
Riga 213:
== Funzione anonima ==
 
Precedentemente alle variabili si è visto come è possibile assegnare diverse cose. Fra queste ci sono anche le funzioni:
 
<source lang=perl> my $fun = sub
Riga 259:
Prestate molta attenzione alla sintassi.
Infatti $f viene assegnato un reference "\" alla funzione "&" chiamata "estrazione".
Ben diverso è una chiamata a, così fatta:
<source lang=perl>
my $f = \&estrazione();
Riga 271:
print "b:".join(" , ",@b)."\n";
</source>
Dato che $f è una varibilevariabile è possibile usarla come un reference (infatti lo è), pertanto è possibile usare la sintassi -> :
<source lang=perl>
my $a = $f->();
Riga 278:
== Funzioni con ritorno a funzione (nome o anonima) ==
 
Questo caso è alquanto raro, tuttavia è interessante per capire cosa avviene , datoin quanto rappresenta una possibilità offerta dal chelinguaggio possibilePerl.
Se si torna una funzione poi questa deve essere lanciata per poter ottenere un risultato.
Vediamo ora questo codice:
<source lang=perl>
sub estrazione
{
{
my $num = shift;
$num1 = int ( ( $num * 13 ) / 7 ) % 9 ;
Riga 298:
}
sub controlla
{
my $n;
Riga 354:
con 0 vinto il premio di consolazione!
 
Da notare che nellanel ritorno della funzione '''estrai''' nel(costituito ritornoda diun' altra funzione) ci sono dei dati passati alladurante primal' invocazione, che vengono ereditati dalla funzione ritornata. Questo è possibile perché la funzione viene "cablata" con il valore della variabile nel codice della funzione ritornata.
Come detto all'inizio è preferibile usare , anche e soprattutto per laquestioni di manutenzione, le chiamate a funzioni esplicite piuttosto che nella forma anonima/nominale.
 
[[Categoria:Perl|Funzioni]]