Hello everybody
Yesterday, debugging a program I was writing, I thought I spotted a problem in an eval.
It is a common practice to trap exceptions with code blocks like the following:
eval { # some perl code here . . . } if ($@) { print "eval failed: $@\n\n" ; }
and the one I was in was quite similar to the above. I went back to the documentation and double checked if I remembered exactly eval's syntax. A small section made a bell sound in my head:
If there is a syntax error or runtime error, or a "die" + state- ment is executed, an undefined value is returned by "ev +al", and $@ is set to the error message. If there was no error, + $@ is guaranteed to be a null string.
So, actually, a failed eval returns undef and sets $@. Ok, but...
The question is: it is easy to have an eval succeed (hence setting $@ and return undef, but is it possible to have a failing eval to return a null $@?
Ciao!
--bronto
The very nature of Perl to be like natural language--inconsistant and full of dwim and special cases--makes it impossible to know it all without simply memorizing the documentation (which is not complete or totally correct anyway).
--John M. Dlugosz
In reply to seeking eval failures by bronto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |