C.DeRykus wrote:
On Dec 8, 1:57 am, dery...@gmail.com (C.DeRykus) wrote:
On Dec 8, 12:08 am, an...@melerit.se (Anders Hartman) wrote:
Also, in this case, I'd write the eval for compile-time and check
for errors:
eval { asub() };
die $@ if $@;
No, sorry, that's a "useless use of eval" since you could just call
the sub directly. Since, the intent was to define and call the sub
dynamically though, checking for eval errors is still a good idea.
You need to test the return of eval itself to be sure.
eval {
asub();
1; # success
}
or do {
my $error = $@ || "unknown";
die $error if $error;
};
Alternatively:
die $@||"unknown" if !eval{asub();1};
Example:
perl -wle '
die "An error: ", $@ || "whoopy"
if !eval{ asub(); 1 };
sub asub{ my $x = bless {}, "main"; 1 / 0 }
sub DESTROY{ $@ = "bad mojo" }
'
--
Ruud
--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/