Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Fun with $SIG{__DIE__}

by Adam (Vicar)
on Jul 08, 2000 at 00:41 UTC ( #21573=perlquestion: print w/ replies, xml ) Need Help??
Adam has asked for the wisdom of the Perl Monks concerning the following question:

I am in the process of adding a bunch of debug commands to a script. They are of the form:
print LOG "Some message like, \$v=$v\n" if DEBUGING;
(Note that DEBUGING is a constant declared with use constant) And I wanted to catch all those lines that said
do this or die "couldn't do it.";
by catching the die signal. But I'm not sure how to catch the message that die was called with. Does any one know?
$SIG{__DIE__}=sub {print LOG "Script Died" and close LOG if DEBUGING}; # is what I have, but I want: $SIG{__DIE__}=sub {print LOG "Script Died: $msg" and close LOG if DEBU +GING};
Thanks!

Comment on Fun with $SIG{__DIE__}
Select or Download Code
Replies are listed 'Best First'.
Re: Fun with $SIG{__DIE__}
by plaid (Chaplain) on Jul 08, 2000 at 00:45 UTC
    From Programming Perl:
    The routine indicated by $SIG{__DIE__} is called when a fatal exception is about to be thrown. The error message is passed as the first argument.
    So you probably want something like:
    $SIG{__DIE__}=sub {print LOG "Script Died: $_[0]" and close LOG if DEB +UGING};
      That works. I guess I should RTFM more closely. :) Thanks.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://21573]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2015-07-08 02:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls