Этому может быть несколько причин:
Скрипты, написанные на языке Perl, в операционных системах Unix должны иметь правильный перенос строки. В операционной системе Windows в конце каждой строки ставится символ переноса строки и символ возврата каретки. В системах Unix используется только символ переноса строки. В результате скрипты, написанные под системой Windows и закаченные по FTP не в ASCII режиме, не работают.
Самый простой способ решить данную проблему - это перезакачать все Perl-скрипты в ASCII режиме. В этом режиме FTP клиент автоматически заменит все Windows-окончания строка на Unix-окончания.
Если описанный выше способ не помогает, то можно убрать перенос строк, выполнив следующую команду через SSH:
perl -i -npe 's/\r//' myscript.pl
где myscript.pl имя вашего скрипта.