Как я могу отладить Perl CGI скрипт? - PullRequest
0 голосов
/ 18 ноября 2009

Я унаследовал старый Perl-скрипт от старого сервера, который удаляется. Сценарий должен быть реализован на новом сервере. У меня это на новом сервере.

Сценарий довольно прост; он подключается через сетевую систему и через SSH и собирает данные. В целях отладки я работаю только с той частью, которая собирает список интерфейсов с устройства.

Скрипт на новом сервере всегда показывает мне страницу в течение 5 секунд после ее перезагрузки. Редко он включает в себя список интерфейсов с удаленного устройства. Чаще всего он содержит все элементы HTML, кроме списка интерфейсов.

Теперь на старом сервере иногда сценарию требуется 20 секунд для вывода данных. Это было хорошо.

Исходя из этого, кажется, что apache на новом сервере отображает данные до того, как скрипт Perl завершит возвращение своих данных, хотя это, безусловно, может быть неверным.

Дополнительная информация: К сожалению, я не могу опубликовать код - политика работы. Тем не менее, я уверен, что это не проблема с ожиданием. Ожидаемые части записываются как Expect () или Die ('error msg'), и я не вижу сообщений об ошибках. Однако, если я установлю ожидаемое время ожидания на 0, то я увижу сообщения об ошибках.

Ожидаемое значение времени ожидания, используемое в сценарии, обычно составляет 20 секунд ... но, как я уже упоминал выше, apache отображает статическое содержимое из сценария примерно через 5 секунд, а в 95% времени не отображается содержимое, которое должно извлечено из ожидания. Кроме того, сценарий записывает ожидаемое содержимое в файл на диске, даже если страница не отображает его.

Ответы [ 2 ]

3 голосов
/ 29 января 2010

Я только что добавил Устранение неполадок сценариев Perl CGI руководство по Stackoverflow. :)

1 голос
/ 18 ноября 2009

Вы можете попробовать CGI :: Inspect . Мне не нужно было пробовать это самому, но я видел, как продемонстрировал на YAPC , и это выглядело потрясающе.

...