Oh, goodie, another chance to put in a plug for CGI::Debug! I think CGI::Debug should be a standard module. I won't go into all the details, suffice it to say that while developing CGI code, 'use CGI::Debug' at the top of the code will make it much easier to catch and fix bugs.
A lot of visitors to DALnet #perl have problems with code that runs fine locally or on their shell on the server, but dies when run by the server uid (permissions usually), but they can't get at the logs to find out why. A neat feature of CGI::Carp is the carpout subroutine. carpout takes an open FILEHANDLE and directs STDERR to it. Give carpout a FILEHANDLE opened on a file in a directory under your home and you have access to perl's errors and warnings output. This won't help you with server errors, but with proper error handling in your code, you'll usually have enough to go on.