in reply to Net::SSH::Perl kills perl from within an eval

If nothing else, how about an explanation about how it's managing to die within an 'eval' without getting back to the main program?

exit is the easiest way. exec also works. There are also less pedestrian ways including bugs in perl, POSIX::_exit(), XS code, ...

(update) I tested and the following is another way:

$ perl -e'eval { alarm(1); sleep(3); }; print "Done\n"' Alarm clock $

In other words, the module (Net::SSH::Perl) could set a handler for a time-out but then remove the handler before canceling the time-out.

But I don't see where the module calls exit(), exec(), or even alarm().

- tye        

Replies are listed 'Best First'.
719885
by jahrens (Acolyte) on Oct 28, 2008 at 01:51 UTC