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

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.

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.


      #!/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?

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (8)
As of 2018-06-24 17:32 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.