|
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";
|
Lezione
successiva =>
Torna
all'indice
|