in reply to DIE handling ... carp!
If you want to capture an error in such a way to continue execution, $SIG{__DIE__} won't work, you have to use eval{} instead.