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

RE: END failed--call queue aborted

by Adam (Vicar)
on Oct 20, 2000 at 20:26 UTC ( #37706=note: print w/ replies, xml ) Need Help??


in reply to END failed--call queue aborted

It gets more interesting! I thought I would throw a SIG{DIE} in there just to see where the route goes and got a very odd result (note the double S):

perl -we "sub fail{die 'test'}; END{ print qq'\nF\n'; fail() }; $SIG{__DIE__} = sub{print qq!\nS\n!; fail()}; fail()" S test at -e line 1. F S S test at -e line 1.
Update

I like line numbers, so I wrote this up as little program:

#!perl -w use strict; my $counter = 0; sub fail{ ++$counter; print "$counter: Fail called.\n"; die "DEATH ". +__LINE__ ."\n" } END{ ++$counter; print "$counter: End called.\n"; fail() } $SIG{__DIE__} = sub{ ++$counter; print "$counter: SigDie called.\n"; f +ail() }; fail()
and the output:
1: Fail called. 2: SigDie called. 3: Fail called. DEATH 4 4: End called. 5: Fail called. 6: SigDie called. 7: Fail called. 8: SigDie called. 9: Fail called. DEATH 4


Comment on RE: END failed--call queue aborted
Select or Download Code
Re: RE: END failed--call queue aborted
by little (Curate) on Jun 27, 2002 at 06:12 UTC

    Not exactly, as an END block gets always executed. Even if your script dies a present END block will be executed.
    cite from perlman:perlmod

    An END subroutine is executed as late as possible, that is, after perl has finished running the program and just before the interpreter is being exited, even if it is exiting as a result of a die() function. (But not if it's polymorphing into another program via exec, or being blown out of the water by a signal--you have to trap that yourself (if you can).) You may have multiple END blocks within a file--they will execute in reverse order of definition; that is: last in, first out (LIFO). END blocks are not executed when you run perl with the -c switch, or if compilation fails.


    Have a nice day
    All decision is left to your taste

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (13)
As of 2014-07-23 16:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (146 votes), past polls