Subroutine

Guida a Perl
di M. Liverani

Se una certa parte di codice deve essere richiamata più volte all'interno di uno script o semplicemente per motivi di leggibilità del codice stesso, può essere utile spezzare un lungo script in più subroutine, ossia piccoli pezzi di sottoprogramma con una loro propria identità logica e funzionale. In Perl chiameremo quindi subroutine ciò che in Pascal viene chiamato procedura ed in C funzione.

Una subroutine deve essere definita prima di poterla utilizzare; per far questo si usa il seguente costrutto:

sub nome_subroutine {
blocco di istruzioni della subroutine
return valore_di_ritorno;
}

È possibile passare dei parametri alla subroutine, che verranno memorizzati dall'interprete nell'array ``@_''. La subroutine può a sua volta restituire un valore che deve essere specificato come argomento della funzione return.

Per richiamare una subroutine definita nello script si deve specificare il nome preceduto dal simbolo ``&'' e seguito dalle parentesi che possono eventualmente contenere i parametri (separati da virgole) passati alla subroutine.

Con la funzione local possono essere definite delle variabili locali che hanno validità solo all'interno della subroutine.

Nell'esempio seguente viene definita una subroutine ``media'' che restituisce la media aritmetica dei numeri passati come argomento:

#!/usr/local/bin/perl
# media.pl
# legge dei valori in input e ne stampa la
# media aritmetica

sub media {
local($n, $somma, $media);
foreach $n (@_) {
$somma += $n;
}
$media = $somma/($#_+1);
return($media);
}

print "Inserisci i numeri:\n";
@numeri = <STDIN>;
chop(@numeri);
$media = &media(@numeri);
print "media = $media\n";


© Risorse.net (www.risorse.net)
pagina in versione stampabile:
http://www.risorse.net /perl/sub.asp?print=ok