in reply to Trap errors in entire module...

When'CGI::Carp qw(fatalsToBrowser)' is enabled, the error goes to the broswer, which is desirable during production.

No, No, NO, NO, NO! This is NEVER desirable in production for any reason at any time. Having this is production is a major security hole. Let's say the error is a SQL error ... now, you're displaying your database schema to the world. This means that I can craft a query to perform a SQL injection. And, that's just one of the millions of ways to break your site.

Instead, it is much better to redefine the 500 handler as a script which displays a generic "There is a problem. Please contact management and let them know what you were doing". The error should be logged in some datastore (such as the error_log, if you're using Apache) and every page view should be logged, including user and parameters (which the access_log doesn't necessarily have), so that support staff can replicate what the user was doing at the time of the error.

------
We are the carpenters and bricklayers of the Information Age.

Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose