CGI::Carp was designed specifically for this. I use a configuration identical to yours and have not had problems with this technique. Perl CGI errors invariably end up in the error logs as desired (or in the browser for those cases where I specify fatalsToBrowser).