Having looked at SIG magic, it's even more horrible, but the real thing on why to avoid $SIG{__DIE__} is when you mix die and eval. If you can live with your $SIG{__DIE__} handler getting called even when the program doesn't actually die, then I think using it to copy the message to some logging/notification is OK.
$SIG{__DIE__} = sub { die "[".gmtime." UTC] (PID $$) FATAL ".shift }; if( !eval { die "Whoops"; 1; }) { print "Error reading config file, using defaults\n"; ... };
Update: Upon reading your node to completion, you already mentioned the case I'm pointing out, sorry.
Outside of that weird/potentially confusing interaction, I simply wouldn't want to put complex logic in a SIG handler because something already went wrong, but again, copying the message to syslog or whatever doesn't seem too bad.
In reply to Re: How bad is $SIG{__DIE__} really?
by Corion
in thread How bad is $SIG{__DIE__} really?
by haukex
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |