![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
На некоторых севрерах CGI скрипты на перле не работают если не указать ключ -w
Обычно ставишь этот ключ и ничего не меняется. Появляются только в логах сообщения о необъявленных переменных... А тут вдруг программа начала вести себя мистичиским образом! Отдельные строки кода конфликтуют между собой! И вообще ужас. И если убрать ключ -w То все впорядке становится. Но на сервере без ключа работать не будет, а с ним- тоже... Хотелось бы более детально понять что делает этот ключ, что бы попытаться понять как исправить глюки... Но меня смущает анекдот- Если твоя программа ведет себя мистическим образом, значит ты сделал что то ЖУТКО тупое! Вот я и не могу до сих пор понять что же такое СТРАШНО тупое я сделал... |
|||
|
||||
| BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
Что конкретно пишеться в ошибке? вместо ключа -w, многие (и я) рекомундуют использовать warnings Завтра отсканирую рисунок "Категории предупреждений Perl для warnings" ... Это сообщение отредактировал(а) BlackLFL - 17.1.2006, 20:44 |
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Ничего! Просто программа виснет. Причем циклов в ней нет Браузер хоть 20 минут может здать ответа от сервера! Причем от этого начинает вешаться процес винды, под названгие System! Правда такое только 1 раз было. КОроче процессы Perl не выгружаются из памяти. И когда их там штук 20 он уже и на обычные программы перестает реагировать. ПРиходится останавливать серв и вручную удалять все процессы. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Включает вывод предупредительных сообщений, например если в коде есть рекурсия глубиной больше 100 или переменная встречается только один раз, да и ещё много чего. Отключить, помоему, её можно так:
Странно ты пишешь код и хост у тебя странный. Вообще-то люди пишут код всегда с включённым ключём -w, а так же прагмой use strict. А когда код готов, то из рабочего кода удаляют ключь -w, use strict коментируют. У тебя всё наоборот -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
после того как Вы убиваете процессы Perl, посмотрите, что появляется в логах
такое подвисание бывает связанно, если паралельно ключю -w в программе есть перехват STDERR, например модулем CGI::Carp
Это сообщение отредактировал(а) BlackLFL - 17.1.2006, 20:57 |
|||
|
||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Нафиг мне эти предупреждения не нужны Добавлено @ 20:59 ха... я узаю use CGI::Carp qw(fatalsToBrowser); |
|||
|
||||
| BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
korob2001, а разве можно заставить работать только с ключем -w ? |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Вот эту строку точно коментируй в рабочем коде, нафик не нужно видетьт столько информации, сколько она может выдать рядовому юзеру. Она нужна только на этапе разработки.
Я не понял вопроса? -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| BlackLFL |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
Автор пишет, что на хостинге без ключа -w интерпритатор Perl не запускается, вот я и удивился, может, я что-то не знаю, и каким-то образом владелец хостинга заставляет проставлять ключ -w : |
||||
|
|||||
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Да даже когда я установил Linux и настроил сервера без -w они не работают. В логах что-то типа "неожиданный конец заголовка"
|
|||
|
||||
| korob2001 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Но с момощью no warnings можно отключить -w, не удаляя сам ключь. Потому я и привёл этот пример. А вообще, мне такого никогда не приходилось видеть, что бы хостеры запрещали запуск скриптов без каких-либо ключей. Добавлено @ 21:57 Да это у тебя глюк в коде, подключай use strict и ключь -w и отладь код, до тех пор, пока в логах не будут появляться ошибки, потому как CGI::Carp qw(fatalsToBrowser) выводит в браузер далеко не все ошибки. А вообще привыкни к тому, что бы каждый твой код, который ты пишешь начинался вот такими строками, на то время когда ты пишешь и отлаживаешь его:
Когда программа написана и отлажена, то советую изменять начало файла на такое:
Но это так, совет. Ты можешь послушать его, а можешь делать так, как делал раньше, это уже твоё личное дело. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |