Valutazione di espressioni

Guida a Perl
di M. Liverani

Concludendo questo capitolo č opportuno citare anche la funzione eval, che consente di valutare espressioni Perl. Questa funzione, che appare subito estremamente potente, puņ risultare spesso difficilmente utilizzabile, ma in alcuni casi puņ invece essere determinante per sbrogliare situazioni intricate e di difficile soluzione.

In alcuni contesti puņ risultare troppo gravoso scrivere a priori delle subroutine per svolgere determinati compiti, oppure una subroutine molto generale puņ risultare poi di fatto troppo lenta; in questi casi puņ invece essere utile produrre runtime (al momento dell'esecuzione dello script) delle subroutine sulla base del contesto in cui ci si trova e farle quindi eseguire all'interprete mediante la funzione eval.

Riportiamo un esempio elementare che puņ aiutare a chiarire il funzionamento di questa potente istruzione. Riprendiamo quindi lo script per il calcolo della media aritmetica su un insieme di numeri inseriti dall'utente e riscriviamolo sfruttando la funzione eval:

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

sub media {
local($n, $somma, $media);
$media = "(";
$media .= join('+', @_);
$media .= ")/($#_+1)";
return(eval($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/valutazione.asp?print=ok