Ausführen von Perl-Code mittels eval
  
  
  
Normalerweise wird der auszuführende Code in eine Datei geschrieben,
deren Inhalt dann durch Perl abgearbeitet wird. Will man aber einem
Benutzer beispielsweise die Möglichkeit geben eigene Perl-Befehle
einzugeben und ausführen zu lassen, so ergibt sich das Problem,
daß diese Kommandos zum Zeitpunkt des Programmstarts noch nicht
bekannt sind.
  
  
Die Funktion eval() erwartet als Argument Perl-Code, der
entweder in Form einer Zeichenkette oder als Code-Block übergeben wird.
Dieser Code wird dann zur Programmlaufzeit übersetzt und ausgeführt.
  
| 
| #!/usr/local/bin/perl -w
 use strict;
 
 my $v = 5;
 print "\$v = $v\n";
 
 eval '$v++';
 print "\$v = $v\n";
 
 eval { $v++ };
 print "\$v = $v\n";
 
 
 |  | 
  
Die erste Variante, bei der ein String übergeben wird, erlaubt eine
Fehlerbehandlung zur Laufzeit, ohne daß notwendigerweise das
Programm beendet wird. Im Fehlerfalle wird dazu die spezielle Variable
$@ gesetzt.
  
| 
| #!/usr/local/bin/perl -w
 use strict;
 
 my $v = 5;
 print "\$v = $v\n";
 
 eval '$v+';
 if($@) { print "Fehler: $@" }
 print "\$v = $v\n";
 
 |  | 
| 
| $v = 5Fehler: syntax error at (eval 1) line 2, at EOF
 $v = 5
 
 |  |