http://qs321.pair.com?node_id=11123187


in reply to Why server error out with module

Adding use CGI::Carp qw(fatalsToBrowser); during debug can help (especially if hippo's suggestion of searching ISP error logs isn't convenient).

And, in the BEGIN block, you might want to log some of the CGI header variables from %ENV, like $ENV{SERVER_ADDR}, possibly to your own logfile or to STDERR, or move your $cgi->header print so that it's in the BEGIN before the unshift -- it might indicate that your ISP has a round-robin of servers where one or more servers aren't behaving identically to the others, or some such. By putting it as early as possible (in BEGIN blocks, before local libraries are used), you increase the chances that your debug code will be printed somewhere you can read it before the script crashes.

An example here:

http://www.cgi101.com/book/ch3/text.html lists other interesting environment variables, and a way to dump all of the %ENV... SERVER_ADDR isn't in their list, but it's available on my shared hosting system.


edits: fix typos and links