![]() |
|
Perl-Sensitive Sunglasses | |
PerlMonks |
comment on |
( #3333=superdoc: print w/replies, xml ) | Need Help?? |
First, remove the "my" inside the eval block, otherwise it won't do what you think it does.
To me, as written, it's equivalent to:
That's pretty succinct :) What is it that you really want to do? Log the error before rethrowing it? Having said that, this is a slightly more succinct way: But note that if you call a method in between the eval and checking $@, any eval potentially called inside the method will reset $@ for you, so you need to capture the value of $@ immediately. Also note that other things may potentially mess up $@ for you (if an eval was used in a DESTROY block which was triggered by the exception). This is normally not a problem, but when something in your code changes and it becomes a problem it will confuse you for a bit because of the action at a distance. So overall it's better to make sure the eval returns a true value, and check for that. If an exception is thrown, eval returns undef (perldoc -f eval). /J In reply to Re: eval and return values
by jplindstrom
|
|