Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^4: Program unexpectedly terminates

by Anonymous Monk
on Nov 19, 2012 at 09:20 UTC ( #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.


Comment on Re^4: Program unexpectedly terminates
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
Node Status?
node history
Node Type: note [id://1004494]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2014-12-23 04:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (135 votes), past polls