Andy Wardley <[EMAIL PROTECTED]> writes:

> I believe the problem lies in modules (non-TT modules that is) that blindly
> redefine $SIG{__DIE__} and/or $SIG{__WARN__}.  Presumably, these modules
> attempt to intercept all warn/die calls but don't give any consideration to 
> the fact that your program (or other modules) might be relying on those 
> calls for correct execution.
> 
> I suspect that some other module that you're using is trapping $SIG{__DIE__}
> and turning a perfectly harmless RETURN into a confess().

That's right. The "use diagnostics" used in a Apache::Registry cgi
program.

You are catching warnings in Template::Document constructor:

        local $SIG{__WARN__} = \&catch_warnings;

Could it ork if you would set $SIG{__DIE__} in the same place, since
you are relying on the behaviour of the exceptions?

Or would that just set it for the constructor?  It would be useful for
the variable to be local for the object, but the manual dosen't say
anything about objects.

-- 
/ Jonas  -  http://jonas.liljegren.org/myself/en/index.html


Reply via email to