There are two possibilities here:
1. The server-side end of things is messed up, and the script can't even run. If this is the case, you need to make sure that all the files are mode 755 (chmod 0755 as an FTP command should work on prohosting, if i remember right); make sure the script is in the appropriate cgi-bin directory, and so on. You could try installing Apache on your own computer, and playing around with stuff there, to see how the server-configuration end of things works. (This assumes you're using a unix-ish OS that supports the idea of file permissions.)
2. Your script doesn't work well on their server. If this is the case, do the following:
use CGI::Carp qw(fatalsToBrowser);
Now any fatal errors (i.e. die()
's) will be sent to your browser, instead of causing an internal server error.
I'm guessing this might be more reliable than your errorHTML function.