Обьясните почему в консоли perl нормально реагирует на наличие
CR LF (интерпертирует все как надо) скриптах но в CGI ругается и дает premature end of script headers?
>Обьясните почему в консоли perl нормально реагирует на наличие
>CR LF (интерпертирует все как надо) скриптах но в CGI ругается и
>дает premature end of script headers?
Т.к. в консоли работает shell - он игнорирует \r а в cgi 1-я строка - путь к интерпретатору (#!/usr/bin/perl\r) - оказывается неправильным
>>Обьясните почему в консоли perl нормально реагирует на наличие
>>CR LF (интерпертирует все как надо) скриптах но в CGI ругается и
>>дает premature end of script headers?
>Т.к. в консоли работает shell - он игнорирует \r а в cgi
>1-я строка - путь к интерпретатору (#!/usr/bin/perl\r) - оказывается неправильным
Понятоно.
А есть ли способ отстроить Apache на этот предмет?
Потому что юзеры имеют свойство класть скрипты из win со всеми вытекающими CR LF в концах.
>>>Обьясните почему в консоли perl нормально реагирует на наличие
>>>CR LF (интерпертирует все как надо) скриптах но в CGI ругается и
>>>дает premature end of script headers?
>>Т.к. в консоли работает shell - он игнорирует \r а в cgi
это кстати оказалось неправильно (в shell такое тоже не работает)
ты наверно проверял скрипт perl -c script или добалял опции в первую строку /usr/bin/perl -c
- в 1-м случае интерпретатор указывался явно, во втором путь отделялся пробелом от \rиз этого следует, что настроить Apach ИМНО под \r нельзя
Наверное, следует приучать users к "правильности" (:
+можно написать простенький скриптик для проверки скриптовых файлов на наличие \r и
ИЛИ самому (автоматически) убирать \r
ИЛИ высылать строгие предупреждения (с приложенной штрафной квитанцией, разумеется)>>1-я строка - путь к интерпретатору (#!/usr/bin/perl\r) - оказывается неправильным
>Понятоно.
>А есть ли способ отстроить Apache на этот предмет?
>Потому что юзеры имеют свойство класть скрипты из win со всеми вытекающими
>CR LF в концах.
ты прав, я проверял скрипт в shell пуская егочерез
" perl ./script.cgi,"
но при запуске с нужными пермиссиями "./script.cgi" оно сразу сказало, что путь к интерпретатору неверен.