Script1:
#!/usr/bin/perl -w
push
(
@program,'$i = 1;');
push
(
@program,'$i = 3; $j = 2; $k = $i + $j');
push
(
@program, '$i = 3; return 24; $k = $i + $j');
foreach
$exp (@program)
{
$rtn =eval($exp);
print
$rtn,"\n";
}
Output:
1
5
24
|
Script2:
#!/usr/bin/perl -w
push
(
@program, '$i = 3; die "error message"; $k = $i + $j');
foreach
$exp (@program)
{
$rtn =eval($exp);
if
(
!
defined
(
$rtn))
{
print
"Exception: "
,
$@,"\n";
}
else
{
print
$rtn,"\n";
}
}
;
Output:
Exception: error message at (eval 1) line 1.
|
Script3:
#!/usr/bin/perl -w
# a run-time error
eval
'$answer ='
;
# sets $@
warn
$@ if$@;
Output:
syntax error at (eval 1) line 2, at EOF
|