Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^4: Program unexpectedly terminates

by Anonymous Monk
on Nov 19, 2012 at 09:20 UTC ( [id://1004494]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Program unexpectedly terminates
in thread Program unexpectedly terminates

Yes, the code in the main package is exactly what I'm using- only the Crawler package is abreviated. Test::Trap is basically an eval and only traps &CORE::GLOBAL::exit, so I don't think it does anything else than what I've tried.

Replies are listed 'Best First'.
Re^5: Program unexpectedly terminates
by ColonelPanic (Friar) on Nov 19, 2012 at 09:56 UTC

    Well, your code should be catching any normal exit case. You still won't be catching exit() within an eval block, but your END statement should happen nonetheless.

    I don't see any way forward other than basic debugging in order to narrow down where, exactly, this problem occurs.



    When's the last time you used duct tape on a duct? --Larry Wall

      There's another case not covered: exec. Something like exec("/bin/true") will effectively exit a script without triggering any END blocks, etc.

      Illustration:

      #!/usr/bin/env perl use 5.010; use strict; use warnings; BEGIN { *CORE::GLOBAL::exit = sub { die("exit called") } } END { say "END block"; } do { exec "/bin/true" }; # Assuming a Unix-like system here say "got here";
      perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
        Thanks, I didn't realize that one.


        When's the last time you used duct tape on a duct? --Larry Wall

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (6)
As of 2024-03-19 07:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found