Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: BEGIN, END, eval and die.

by autark (Friar)
on Nov 19, 2000 at 03:00 UTC ( #42379=note: print w/replies, xml ) Need Help??


in reply to BEGIN, END, eval and die.

The $@ variable is only set by the eval code if it somehow fails. In your last example, you don't use eval to "catch" this die, so $@ will not be set.

However, even if you used eval, this will not work for your END-block. You might want to try to install a $SIG{__DIE__} handler instead. Using that to set a variable or something similar, so that you can access the information within the END-block.

$SIG{__DIE__} = sub { our @reason = @_ }; eval { die "Let's Try to die." }; END { our @reason; if (@reason) { print "We caught a call to die: @reason\n"; } }

Autark.

Replies are listed 'Best First'.
Re: Re: BEGIN, END, eval and die.
by zzspectrez (Hermit) on Nov 19, 2000 at 12:30 UTC

    I did not realize the $@ variable is tied just to the eval code. This makes sense.
    Using a $SIG{__DIE__} handler seems to be exactly what I was looking for. Will this work on the windows platform as well?

    THANKS!!
    zzspectrez

      Yes -- but that's only because it's a Perl-generated signal that never touches the OS. So Windows' lack of signal support doesn't even get brought into play.

      perl -e 'print "Just use $^X$\"$]!$/"'

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://42379]
help
Chatterbox?
[marto]: more so than the previous show I saw
[Corion]: marto: Well, I think they go a tour every two years and I think it's hard to even get a connection with the crowd at a 20k people concert... But maybe after this time I'll stop too ;)
[Corion]: I still have to see the Pet Shop Boys live before they stop touring at all
[marto]: yeah, I think that as a group creatively they're done. I can understand how it'd be hard to stop the process, album/tour, album/tour, if that's pretty much all you've ever done :)
[marto]: Corion yes I saw them Pandemonium_Tour
[Corion]: marto: Yeah, and I doubt that they'll ever get back to something like Violator/Songs of Faith and Devotion - it would either alienate their "regular" crowd, or be "too much Violator" ;)
LanX needs to see Freddy Mercury'
[Corion]: marto: Yeah, I have that on DVD even, and I missed them last year because I was in London at the time ironically ;)
[marto]: put me in the mood to listen to this now :)
[Corion]: LanX: Well, grab a shovel :)

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (12)
As of 2017-03-24 11:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (301 votes). Check out past polls.