You should not mess with $SIG{__DIE__} unless you have excellent reasons to do so. A simple eval { ... } is sufficient to trap any exception thrown by die calls, plus it avoids spooky actions-at-a-distance. $SIG{__DIE__} has some nasty side effects inside explicit or implicit eval blocks.
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)