http://www.perlmonks.org?node_id=356519


in reply to How to get over 'premature end of script headers' in Apache?

If you developed this script on Windows, it's possible that the script file has non-UNIX line endings. (The perl interpreter can handle them, but the shebang line is interpreted by the shell, and is not tolerant of incorrect line endings.) If this is the problem, the script may terminate with an error right at the shebang line.

When you bring a script over to UNIX from other OSes, check the file format, and correct line endings if necessary. For example, using vi, when you open the script the file format is displayed at the bottom of the window. To force the file to UNIX format, enter the vi command

:set fileformat:unix

Replies are listed 'Best First'.
Re: Answer: How to get over 'premature end of script headers' in Apache?
by dondelelcaro (Monk) on May 27, 2004 at 07:02 UTC
    You can also use cat -A to check the line endings. If you see anything but #!/usr/local/bin/perl$, you've got the wrong line endings, and need to use dos2unix or perl -pi -e 's/\r\n/\n/g' foo.pl.