The front-end is a CGI script which uses the Template Toolkit. Some templates mysteriously logged stuff and stopped, muttering about us not having some Apache::* module installed. We tracked this down to TT trying to use the module in an eval.
Dear module authors, if you're going to eval stuff because you expect it to die, be aware that __DIE__ handlers *are* called when stuff dies in an eval. Please temporarily remove the __DIE__ handler before doing your voodoo, and then restore it.
And just to prove it
perl -e '$SIG{__DIE__} = sub { print "Foo\n"; exit(1); }; eval "use Apache::NonExistent;"; print "Bar" if $@'
Check caller (Score:3, Insightful)
(caller(0))[3] eq '(eval)'. You'll get caught out by such things as HTML::Parser otherwise.Reply to This
Re:Check caller (Score:2, Informative)
Re:Check caller (Score:1)