Естественно он выдаст Одно только
А теперь
запускайте скрипт. Естественно он выдаст Одно только слово
'Test'. Разкоментируйте
несколько строчек.Еще раз
запустите скрипт.Он опять выдаст
'Test'. Значит
синтаксически эти только что
разкоментированые строчки были
правильные. И так далее....
Если очередной раз после
раскоментирования вы запустили скрипт и получили
'Internal Server Error' - значит в этих строках содержалась какая-та
синтаксическая ошибка. Это способ отловки синтаксических ошибок трудоемок,но к нему придется прибегнуть если ваш скрипт писан под ту версию
Perl,что
на сервере,а не под ту
что у вас.
Узнать версию
Perl можно
perl -v
Ну вот мы отловили в нашем скрипте все
синтаксические ошибки,он
заработал, но это не значит,что он работает
правильно. Что еще можно посоветовать при отладке
CGI-скриптов от ошибок возникающих во время выполнения программы. Допустим какой-то файл не открылся.Конечно показывать перепуганому пользователю эти
технические подробности никчему,поэтому заведите себе специальный файл
debug.txt
и пусть ваши скрипты пишут в этот файл
причины своих ошибок и сбоев, да и вообще о всех непредвиденых событиях.
Это можно реализовать так:
sub debug_err{ open DEBUGFILE,">>debug.txt"; print DEBUGFILE $ENV{'SCRIPT_NAME'}.' '.scalar localtime.' '.@_."\n"; close DEBUGFILE; }
Примеры использования (Напомню,что встроеная переменная
Perl $! содержит сообщение о
причине последней ошибки,поэтому включайте ее
всегда в свои сообщения):
open F,"+<$myfile" debug_err("Cannot open $myfile $!"); seek F,0,0 debug_err("Cannot seek $myfile $!"); connect SOCKET,$paddr debug_err("Cannot connect to $remote $!"); ......
Потом можно периодически заглядывать в этот файл
debug.txt и смотреть,какие ошибки встречались при работе ваших скриптов.Таким образом ваши скрипты сами помогать будут в своей отладке
;).
Кстати я хочу сказать о причине еще одной (совсем не очевидной) ошибки.Если вы набрали скрипт у себя
дома на компутере,то полученый скрипт состоит из текста в
DOS'ом формате, а не в
Unix'ом так что имейте это ввиду. Запускать вам его придется в системе
Unix , так что следует перевести програмный текст в нужный формат.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий