Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

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.

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

Replies are listed 'Best First'.
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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://37706]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2018-06-22 12:13 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.