![]() |
|
Pathologically Eclectic Rubbish Lister | |
PerlMonks |
Localizing %SIGby Darkwing (Beadle) |
on Feb 17, 2016 at 08:51 UTC ( #1155447=perlquestion: print w/replies, xml ) | Need Help?? |
Darkwing has asked for the wisdom of the Perl Monks concerning the following question: Hi, i had the problem that the contents of $@ produced by a failed eval{...} looked wired. It turned out that this was caused by a module that set the $SIG{__DIE__} handler. I then tried this:
But i got: Got: [Unwanted stuff] Something is wrong!. Obviously, the handler is still active inside the eval{...}. Looking at perlmonks i found this http://www.perlmonks.org/?node_id=51097 and changed my code to:
Now the output is Got: Something is wrong!, meaning that the handler is switched off, which is the desired result. But i still do not understand why my fist approach didn't work. Why does local %SIG; not turn off the handler? I expected this to just turn off all handlers. Why do i need to write local $SIG{__DIE__};? Can anybody explain this?
Back to
Seekers of Perl Wisdom
|
|