In the case of
XML::Parser it has its own
__DIE__ handler which makes things a little tricky. But this is perl, the language where "never" doesn't really mean "never", it just means "probably shouldn't" ...
BEGIN {
## Use CORE::die if you still want exceptions
*CORE::GLOBAL::die = sub {
warn "Problem? What problem? ... [@_]\n";
};
}
use XML::Parser;
XML::Parser->new->parse("This isn't XML. Seriously");
print "All is well\n";
__output__
Problem? What problem? [
syntax error at line 1, column 0, byte 0 at /usr/lib/perl5/XML/Parser.
+pm line 187
]
All is well