Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

(tye)Re: Checking the success of eval

by tye (Sage)
on Apr 21, 2001 at 02:04 UTC ( #74348=note: print w/replies, xml ) Need Help??

in reply to Re: Checking the success of eval
in thread Checking the success of eval

I consider eval to be an essential feature of Perl and $SIG{__DIE__} to be a mostly bad idea. So if you want to fix the buggy conflict that they have, I really think you should be fixing the die handler and not the eval:

$SIG{__DIE__}= sub { return if $^S; print "Caught by die handler: @_"; exit; }

Better still is to avoid die handlers altogether and either use eval to catch the exception or use a destructor or END block to do the clean up.

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re: (tye)Re: Checking the success of eval
by ncw (Friar) on Apr 21, 2001 at 02:31 UTC
    Thank you for that $^S nugget tye - I shall faithfully inscribe this into all my $SIG{__DIE__} handlers :-)

    I agree with you that eval is essential, but I disagree with you that $SIG{__DIE__} is a completely bad idea. Just think of if like an eval { } or do_stuff round your entire code and you could come to love it ;-) (If it actually worked that way of course!)

    I like $SIG{__DIE__} for CGI's in the form of CGI::Carp which is really very useful - it would be tiresome to be doing that with eval. I also like $SIG{__DIE__} so I can write scripts which mail me when they've blown up!

    I don't see how you would do it with an END block - perhaps you could enlighten me there? How do you know in an END block whether your program is dieing or just exiting and if you can tell how do you get the value of $@ (presuming that some other destructor/END block used eval)?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://74348]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (4)
As of 2020-06-03 16:57 GMT
Find Nodes?
    Voting Booth?
    Do you really want to know if there is extraterrestrial life?

    Results (27 votes). Check out past polls.