$? in END/destructor
END routines and destructors can change the exit status by modifying $? .
http://perldoc.perl.org/functions/exit.html
Heh. It causes a issue on Proc::Guard + prove. prove watches exit status of test script.
You can see the changes from here:
https://metacpan.org/diff/release/TOKUHIROM/Proc-Guard-0.05/TOKUHIROM/Proc-Guard-0.06#lib/Proc/Guard.pm
Published: 2011-08-15(Mon) 02:22