in reply to Re: Testing a module with eval() where $@ is clobbered (pre v5.14)
in thread Testing a module with eval() where $@ is clobbered (pre v5.14)

Found 'em. RT#123738, RT#123773, and perlvar:

Due to an implementation glitch, the $SIG{__DIE__} hook is called even inside an eval(). Do not use this to rewrite a pending exception in $@, or as a bizarre substitute for overriding CORE::GLOBAL::die(). This strange action at a distance may be fixed in a future release so that $SIG{__DIE__} is only called if your program is about to exit, as was the original intent. Any other use is deprecated.