I've just switched over to a Plesk server, and had some startup problems with my CGIs ("Internal Server Error"). I opened a support ticket with EV1, and the tech there helpfully told me that the shebang line at the first of the script needed to have the -w switch, like this:
#!/usr/bin/perl -w
Sure enough, I added that to my scripts and they started working. But why was that needed? The -w switch turns on compiler warnings, but isn't supposed to affect the running of a script. It's very useful for debugging, but I can't see how it would help with running one from CGI - any error output by -w would be before the "Content-type" header of the HTTP output, and would confuse the browser. Or maybe not. But does anyone have any insight as to why this made the difference?