![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| VladimirAlexeev |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
Установил IndigoPerl.
Создаю файл следующего содержания
Запускаю через браузер, ничего не выводится. Беру пример
Выводиться на экран My test. Вопрос №1 Что обязетально нужно выводить шапку через CGI объект (или просто выводить еще-что, кроме нужной мне информации), чтобы увидеть хоть какой-то результат? Вопрос №2 При допущении любой ошибки в скрипте, браузер выдает Ошибку 500. При этом само диагностическое сообщение записывается в error.log апача. Так вот можно ли как сделать вывод ошибок в браузер (как в PHP)? Это сообщение отредактировал(а) VladimirAlexeev - 24.1.2009, 19:36 |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
возьмите, пожалуйста, книгу и прочтите про CGI (вы удивитесь, что это не Perl ;) ), и почему обязательно "выводить ещё-что, кроме нужной вам информации"! Или может погуглить, это совсем обширный вопрос и писать (а скорее всего просто пересказывать) очень много, например, можете воспользоваться википедией. А в php есть обработка ошибки 500? Она возникает в тех случаях, когда в приципе ошибка или с запуском скрипта, или ещё какие-то, но поэтому и не может скрипт обработать, ошибка до скрипта. В частных случаях как раз и используют: use CGI::Carp 'fatalsToBrowser'; например, допустим ошибку в вашем скрипте:
P.S.: -w и use warnings; практически одно и тоже, но считается что использование последнего рекомендовано (сейчас). И вот про то что такое Ошибка 500 (эту ошибку в пхп вы тоже будете смотреть в логах Апачи) гугль вывел: http://dualhost.ru/faq/help_403.php http://www.yutex.ru/help_error.php#500 |
|||
|
||||
| VladimirAlexeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
Но если, допустим, поставлю квадратные скобки, там где должны быть круглые, то мне В БРАУЗЕР выведется сообщение. А не в лог! И никакой ошибки 500. А тут малейшая опечатка и все! 500 и лезь в лог ( Ладно, качаю ща мануал, может просветит... |
|||
|
||||
| nitr |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
VladimirAlexeev, вы не правы!
В пхп нет обработки 500 ошибки, то что вы про скобки э то синтаксис, зачем спорить ни о чём? Вы посмотрели сылки, там же по-русски написано - Ошибка 500 это "ошибка сервера". use CGI::Carp 'fatalsToBrowser'; вам в первое время поможет. Посмотрите пример что я привел. В нём мы тоже поставили "какие-то другие скобки", а конкретнее убрали две буквы "m" и "y" Чтобы получить 500 ошибку в пхп, как вариант - найдите и удалите php.ini. Ещё можно изменить права на исполнение на скрипт.php. и придется вам тоже лезть в логи Апача. И ничего он не выведет вам, а скажет 500. P.S.: VladimirAlexeev, хватит сравнивать PHP и Perl, вы так точно не научитесь Perl'у, в принципе обратное тоже иногда закономерно ;) Прочтите пару книг, это для первого времени достаточно, да и самое главное не ленитесь понимать, а знание пхп отбросьте на время изучения. Вот пример проще:
Ошибку покажет в браузере, можно сказать синтаксическая ошибка. Такое:
Уже покажет 500. Т.к. синтаксис верный, но у вас не скрипт CGI. Если бы вы знали что это CGI, то поняли, что здесь мы не передали заголовок. Т.е. этот:
Это сообщение отредактировал(а) nitr - 25.1.2009, 01:01 |
||||||
|
|||||||
| tolkien |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
И еще учтите что PHP создан спец. для веба, а PERL создан для администраторов сетей. Отсюда такое разное поведение на ошибку 500 как выше написано.Т.е в php предусмотренные разные спец обработки не предвиденных ситуаций, чтобы пользователь поличл максимально полезной информации на устранение ошибки. В PERL для этого вам надо самим что то делать. Например подключать разные модули или что-нибудь предопределять. Работы от вас в PERL требуется больше. Например чтобы производительность вашего скрипта была сравнима с php нужно обязательно использовать mod_perl или fastcgi. Т.е вам придется дополнительно изучать выше указанные модули и их интерфейсы. Кроме того не каждый хост даст еще возможность использовать mod_perl или fastcgi. В PHP ничего этого не надо. Он сделан уже так что вам ненужно заниматься самим кроме написания самой программы еще и ее оптимизацией.
|
|||
|
||||
| VladimirAlexeev |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
Блин, да знаю я ошибки сервера =). Потому меня это напрягает (удивляет).
Выдает ошибку 500!
Это выдает пустую страницу. Выдает уже My test. Вот все, что касается последних 3 примеров в логе
Это сообщение отредактировал(а) VladimirAlexeev - 25.1.2009, 11:39 |
||||||
|
|||||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
браузер может быдавть ошибку из-за прав доступа... и еще видел из-за некоторых приколов
Добавлено через 3 минуты и 28 секунд
работает? |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
VladimirAlexeev, смотрите у себя, у вас проблемы. Данные примеры слишком просты, чтобы так отрабатывать, в вашем случае вы скорее всего закомментировали строку use CGI::Carp 'fatalsToBrowser';.
На сколько я знаю IndigoPerl это Винда. Ставьте Perl от ActiveState и ошибок меньше, и реализация лучше (имхо). |
|||
|
||||
| VladimirAlexeev |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
Третий вариант - да. Но первые два то не так, как описали )
Как в посте написали, так и вставил в скрипт и запустил.
Не понял? IndigoPerl - это Apache+PHP+Perl. Сразу все ставится вместе. По крайней мере папки ActivePerl там есть =) |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
VladimirAlexeev, покажите perl -v.
А затем perl -MCGI::Carp -e "use CGI::Carp 'fatalsToBrowser'; print '\';" |
|||
|
||||
| VladimirAlexeev |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
Это сообщение отредактировал(а) VladimirAlexeev - 25.1.2009, 17:00 |
||||
|
|||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
VladimirAlexeev, создайте скрипт
|
|||
|
||||
| VladimirAlexeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
Создал, попытался запустить через браузер, получил ошибку 500.
|
|||
|
||||
| gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
nitr, мложет быть так?
|
|||
|
||||
| VladimirAlexeev |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 24.9.2008 Где: г. Волжский Репутация: нет Всего: нет |
gcc, не знаю это ли Вы имеете ввиду, но perl в командной строке у меня выполняется в любом месте.
|
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |