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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с ошибкой 500 решена !?... 
:(
    Опции темы
vechik
Дата 18.2.2010, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.2.2010

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



Вторую неделю практически изучаю Perl.
Самое неприятное на этом нелегком пути - периодически выскакивающая ошибка 500 или Premature end of script headers.
Она выскочила уже x/0 кол-во раз, причем в самых казалось бы простых участках кода. И никак нельзя понять причину ошибки.
Ну вот сегодня, кажется, я ее победил. 
Надеюсь, начинающим программистам на Perl это будет интересно.

П р и м е р ы   к о д а:
Код

#!/usr/bin/perl -w
use strict;
use CGI qw(:standard);
print header;

open STDERR, ">err.txt";
#Создает файл в той же папке, где запускается программа.
#Используется вместо стандартного журнала ошибок.

#Вывод в браузер:    (о ш и б к а   к о м п и л я ц и и)
eval 'abrakadabra' or print "Error: $@";
# Вывела - Error: Bareword "abrakadabra" not allowed while "strict subs" in use at (eval 1) line 1.

#Вывод в файл:
eval '$a=1;$b=0;$c=$a/$b' or die("Error: $@");
# Вывела - Error: Global symbol "$c" requires explicit package name at (eval 5) line 1.

#о ш и б к а   и н т е р п р е т а ц и и
eval 'my $a=1;my $b=0;my $c=$a/$b';
print "Error: $@";
# Вывела - Error: Illegal division by zero at (eval 5) line 1.

Можно таким же образом вывести системную ошибку и C library - $! или ошибку внешней программы и проч. - $?

Если встретилась ошибка 500, помещаем подозрительный фрагмент кода в eval и смотрим ошибку. 
После устранения всех ошибок, убираем eval. Иногда полезно его оставить, например, если может где-то встретиться деление на 0.

Более подробно по функциям и переменным, связанным с ошибками, см. документацию perlfunc, perlvar…

Это для тех, кто отлаживает программы на стороне сервера.

PS: Не знаю, может CGI::WebOut Дмитрия Котерова и лучше, но я его так и не мог подключить.
Установил модуль в папку /home/.cpan..., но в @INC путь к нему не прописался.
Пробовал добавить вручную, все равно не видит. Но он мне, надеюсь, пока не нужен.
PM MAIL   Вверх
mvsgt
Дата 18.2.2010, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

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



Для начинающих программистов: никогда не делайте так. Хотя... будете так делать - конкурентов меньше, так что именно так, через задницу, всё и делайте.
PM MAIL   Вверх
RomanCh
Дата 18.2.2010, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 23.8.2009

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



Автор не пытался сперва хотя бы прочитать книжку "Изучаем Perl" перед тем как пытаться что-то сваять методом "кусок урвали отсюда, кусок - оттуда, кажется что-то работает!"? Мне кажется что нет. Советую почитать! Как и всем начинающим.
PM MAIL WWW Jabber   Вверх
dva300
Дата 3.3.2010, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



да блин... а потом весь этот рак надо переписывать....
автору респект  smile  учите матчасть.

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


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

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


 




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


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

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