Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ключ -w, Что конкретно он делает 
V
    Опции темы
rcdimon
Дата 17.1.2006, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



На некоторых севрерах CGI скрипты на перле не работают если не указать ключ -w
Обычно ставишь этот ключ и ничего не меняется. Появляются только в логах сообщения о необъявленных переменных...

А тут вдруг программа начала вести себя мистичиским образом! Отдельные строки кода конфликтуют между собой! И вообще ужас.
И если убрать ключ -w То все впорядке становится. Но на сервере без ключа работать не будет, а с ним- тоже...

Хотелось бы более детально понять что делает этот ключ, что бы попытаться понять как исправить глюки...

Но меня смущает анекдот- Если твоя программа ведет себя мистическим образом, значит ты сделал что то ЖУТКО тупое!

Вот я и не могу до сих пор понять что же такое СТРАШНО тупое я сделал... smile
PM MAIL ICQ   Вверх
BlackLFL
Дата 17.1.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



Цитата

А тут вдруг программа начала вести себя мистичиским образом! Отдельные строки кода конфликтуют между собой! И вообще ужас.

Что конкретно пишеться в ошибке?

вместо ключа -w, многие (и я) рекомундуют использовать warnings

Завтра отсканирую рисунок "Категории предупреждений Perl для warnings" ...

Это сообщение отредактировал(а) BlackLFL - 17.1.2006, 20:44
PM WWW   Вверх
rcdimon
Дата 17.1.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Цитата

Что конкретно пишеться в ошибке?


Ничего! Просто программа виснет. Причем циклов в ней нет smile

Браузер хоть 20 минут может здать ответа от сервера! Причем от этого начинает вешаться процес винды, под названгие System! Правда такое только 1 раз было. КОроче процессы Perl не выгружаются из памяти. И когда их там штук 20 он уже и на обычные программы перестает реагировать. ПРиходится останавливать серв и вручную удалять все процессы.
PM MAIL ICQ   Вверх
korob2001
Дата 17.1.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Включает вывод предупредительных сообщений, например если в коде есть рекурсия глубиной больше 100 или переменная встречается только один раз, да и ещё много чего. Отключить, помоему, её можно так:
Код

#!/usr/bin/perl -w
no warnings;

Странно ты пишешь код и хост у тебя странный. smile
Вообще-то люди пишут код всегда с включённым ключём -w, а так же прагмой use strict. А когда код готов, то из рабочего кода удаляют ключь -w, use strict коментируют.
У тебя всё наоборот smile .


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
BlackLFL
Дата 17.1.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



после того как Вы убиваете процессы Perl, посмотрите, что появляется в логах

такое подвисание бывает связанно, если паралельно ключю -w в программе есть перехват STDERR, например модулем CGI::Carp
Код

perl -w
...
use CGI::carp qw/fatalToBrowser/; 
...


Это сообщение отредактировал(а) BlackLFL - 17.1.2006, 20:57
PM WWW   Вверх
rcdimon
Дата 17.1.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Цитата

вместо ключа -w, многие (и я) рекомундуют использовать warnings

Завтра отсканирую рисунок "Категории предупреждений Perl для warnings" ...


Нафиг мне эти предупреждения не нужны smile Мне надо ключ -w что бы работало на сервере, без него не работает
Добавлено @ 20:59
ха... я узаю use CGI::Carp qw(fatalsToBrowser);
PM MAIL ICQ   Вверх
BlackLFL
Дата 17.1.2006, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



Цитата

Нафиг мне эти предупреждения не нужны  Мне надо ключ -w что бы работало на сервере, без него не работает


korob2001, а разве можно заставить работать только с ключем -w ?
PM WWW   Вверх
korob2001
Дата 17.1.2006, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата

ха... я узаю use CGI::Carp qw(fatalsToBrowser);

Вот эту строку точно коментируй в рабочем коде, нафик не нужно видетьт столько информации, сколько она может выдать рядовому юзеру. Она нужна только на этапе разработки.
Цитата

korob2001, а разве можно заставить работать только с ключем -w ?

Я не понял вопроса? smile


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
BlackLFL
Дата 17.1.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 15.9.2005
Где: Москва

Репутация: 8
Всего: 12



Цитата(korob2001 @ 17.1.2006, 22:13 Найти цитируемый пост)

Цитата(korob2001 @  17.1.2006,  22:13 Найти цитируемый пост)

korob2001, а разве можно заставить работать только с ключем -w ?

Я не понял вопроса?

Автор пишет, что на хостинге без ключа -w интерпритатор Perl не запускается, вот я и удивился, может, я что-то не знаю, и каким-то образом владелец хостинга заставляет проставлять ключ -w : smile
PM WWW   Вверх
rcdimon
Дата 17.1.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: 1
Всего: 2



Да даже когда я установил Linux и настроил сервера без -w они не работают. В логах что-то типа "неожиданный конец заголовка"
PM MAIL ICQ   Вверх
korob2001
Дата 17.1.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата

Автор пишет, что на хостинге без ключа -w интерпритатор Perl не запускается, вот я и удивился, может, я что-то не знаю, и каким-то образом владелец хостинга заставляет проставлять ключ -w

Но с момощью no warnings можно отключить -w, не удаляя сам ключь. Потому я и привёл этот пример. А вообще, мне такого никогда не приходилось видеть, что бы хостеры запрещали запуск скриптов без каких-либо ключей. smile
Добавлено @ 21:57
Да это у тебя глюк в коде, подключай use strict и ключь -w и отладь код, до тех пор, пока в логах не будут появляться ошибки, потому как CGI::Carp qw(fatalsToBrowser) выводит в браузер далеко не все ошибки. А вообще привыкни к тому, что бы каждый твой код, который ты пишешь начинался вот такими строками, на то время когда ты пишешь и отлаживаешь его:
Код

#!/usr/bin/perl -w
use strict;
use CGI::Carp qw(fatalsToBrowser);

# ТВОЙ КОД

Когда программа написана и отлажена, то советую изменять начало файла на такое:
Код

#!/usr/bin/perl -T
#use strict;
#use CGI::Carp qw(fatalsToBrowser);

# ТВОЙ КОД

Но это так, совет. Ты можешь послушать его, а можешь делать так, как делал раньше, это уже твоё личное дело.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.