Forum Webscript.Ru
Программирование => Perl => Тема начата: Mog. от 13 Мая 2002, 08:01:24
-
Сижу это я, значит, отлаживаю потихоньку скрипт, дописал туда еще одну подпрограмму. Запускаю и
... все ! Перл повис. Я скрипт торможу , перлу (висящему) делаю енд таск . Закомментировал то,
что было минуту назад дописано, запускаю - эффект тот же. Начал комментировать все подряд. Результата
(нужного) не получил. Запускаю скрипт под перл из командной строки с ключем -с , в ответ получаю,
что синтаксис, мол, в норме , но целая куча варнингов (в скрипте прописано perl -w), в основном ругня на дескрипторы открываемых файлов
и на однократно упоминаемые в скрипте переменные. Лезу в логи апача. В error.log ничего интересного,
преждевременная кончина скрипта (наверное результат нажатия кнопки стоп броузера). А в script.log
куча тех же варнингов (смотри выше), но недоконченная. Последняя строка "[Sun May 12 18:" и все.
Я репу почесал и ключ -w из скрипта убрал нафиг. И, что характерно, стало все ништяк. Скрипт запускается
и работает как надо. Вот я и думаю, к чему бы это все. Откуда такой эхвект интересный у
ключа -w. Может кто знает. У меня все это безобразие работает под win95, апач 1.3.12 , перл 5.004_02.
-
-w
Вывод имен переменных, используемых только один раз, имен скаляров, используемых до их определения, имен переопределяемых подпрограмм, ссылок на неопределенные указатели файлов, попыток записи в файлы, открытых только на "чтение", употребление некорректных записей чисел, использование массивов как скаляров, рекурсия более 100 уровней.
-
Используй DzSoft Perl Editor и все будет ХОРОШО!
:beer:
-
Я не говорил, что не знаю для чего ключ -w . Мне интересно почему с ним глючит все это дело, а без этого ключа все нормально.
А что, кстати, за зверь этот DzSoft Perl Editor ?
-
Mog. а тебе и объяснили :), что он докапывается до любых самых мелких вещиц, до которых в нормальных условиях скрипту и дела нет.
Насчёт
DzSoft Perl Editor
, имхо рульная весчь. Перл редактор. подсветка кода, встроенный тестировщик скриптов - при установленном Актив Перле. Имхо - рулька. Последняя из доступных версии по моему пятая.
-
Мне интересно почему с ним глючит все это дело, а без этого ключа все нормально.
;) это не с ним глючит - это код такой.
-
это не с ним глючит - это код такой.
Дико извиняюсь, какой код? Скрипта, что ли? Да уж. Код там далек от совершенства.
Так ить работает он без ключа то вышеозвученного. Я так понимаю, что -w докапываться то докапывается до всего, но если я переменную обозначил раз и не использовал её то это мои проблемы. Предупреждение - оно и есть предупреждение (из разряда "если бы , да кабы...") и на работу влиять не должно, тем более с таким эффектом. А вот пожалуй все предупреждения предотвратить в скрипте и попробовать запускать с -w его и посмотреть, как все получится. Или даже по одному варнинги эти чистить и смотреть на результат запуска. Может быть так ?
-
Используй DzSoft Perl Editor и все будет ХОРОШО!
Хотел заценить, но что-то я никак не могу найти "бесплатную" версию :)
-
Попробуй perl -d script.pl
далее жмешь:
s - пошаговое выполнение,
n- пошаговое выполнение, без захода в подпрограммы.
X и V - просморт переменных.
-
Вот он сам http://wcarchive.cdrom.com/pub/bws/bws_50/perleditor.zip
А вот лекарства ??? Где-же лекарства ???
Нету пока лекарст, но в скором времени должны появиться :)
Если ты из Москвы то я могу тебе терминалом сбросить v3.2
-
AbsolutePerl - лучший редактор + freeware+ наши разработчики.
Предупреждение - оно и есть предупреждение (из разряда "если бы , да кабы...") и на работу влиять не должно, тем более с таким эффектом.
Обычно не влияет, просто в логи скидывает. Видать ;) терпение у Perl\'a лопнуло все это в логи кидать, вот он и #$%!
По идее, можно предупреждения обработать самому, выкинуть тупые (типа используется один раз - иногда, так нужно), через $SIG{__WARN__}= sub {...}
-
AbsolutePerl - лучший редактор + freeware+ наши разработчики.
Мне он тоже нравиться, только вот слишком долго последней (и единственной) версией является глючная вторая бета. И я уверен, что когда разработчики ее доделают от "Free" ничего не останется.
Sorry за оффтопик.
-
Видать терпение у Perl\'a лопнуло все это в логи кидать, вот он и #$%!
Получается, что зависит это не от числа варнингов , а от числа строк в скрипте, пусть даже и закомментированных. Т.е. все работало, добавил несколько строк кода - виснет, закомментировал их - виснет, убрал -w - работает. И я так понимаю, что до запуска скрипта дело не доходит, поскольку даже варнинги не до конца в лог пишутся. А кстати, если запускать скрипт из командной строки с -c ключем, то они (варнинги) все показываются и "все Ok" тоже показывается. А вот как дело доходит до работы в связке с Апачем, тут и заминка возникает.