Почему Perl-скрипт выдает Internal Server Error?

Этому может быть несколько причин:

  • Неверные права у файла скрипта, должны быть 755;
  • Файл скрипта содержит windows переносы строк;
  • Неверно указан путь к perl;
  • Ошибка в самом скрипте.

Скрипты, написанные на языке Perl, в операционных системах Unix должны иметь правильный перенос строки. В операционной системе Windows в конце каждой строки ставится символ переноса строки и символ возврата каретки. В системах Unix используется только символ переноса строки. В результате скрипты, написанные под системой Windows и закаченные по FTP не в ASCII режиме, не работают.

Самый простой способ решить данную проблему - это перезакачать все Perl-скрипты в ASCII режиме. В этом режиме FTP клиент автоматически заменит все Windows-окончания строка на Unix-окончания.

Если описанный выше способ не помогает, то можно убрать перенос строк, выполнив следующую команду через SSH:

perl -i -npe 's/\r//' myscript.pl

где myscript.pl имя вашего скрипта.