![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| vechik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Есть такой код
... Если убираю комментарий из последней строки, то в логах получаю такую запись: Premature end of script headers. Подозреваю, то на сервере используется версия Perl 5.8.8, а эти функции включены начиная с версии 5.10.1. Может, кто посоветует, что делать? А задача - подсчитать интервал времени в мс выполнения блока программы. |
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
Обычно это бывает когда переводы строки после заголовков HTTP забыли вывести.
Покажите весь скрипт |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
а он у вас есть, Time::HiRes ?
|
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
Обычно такие ошибки исправляются, имитируя вызов скрипта сервером. Сделайте это, и узнаете что происходит. Конечно, можно и потелепатировать.
|
|||
|
||||
| DurRandir |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 335 Регистрация: 27.9.2009 Репутация: 14 Всего: 17 |
>>> use strict;
perldoc strict Это очень полезная прагма, прочитайте, что она НЕ даёт вам делать, и что из этого вы делаете в скрипте. |
|||
|
||||
| vechik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Вот так получилось, но выдает секунды ... my $result = eval{use Time::HiRes; my $t1=time;}; print "$result ------ $@"; ... А так ... my $result = eval{use Time::HiRes; my ($s,$mks)=gettimeofday();}; print "$result ------ $@"; ... выдало ------ Undefined subroutine &main::gettimeofday called at _index1.pl line 12. Это сообщение отредактировал(а) vechik - 15.2.2010, 13:35 |
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
vechik, Вам уже намекали насчёт use strict. #$t1=time; есть, а my $t1; нет. И Вы упорно не хотите выполнить скрипт без браузера и апача, просто из командной строки?
|
|||
|
||||
| vechik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 4.2.2010 Репутация: нет Всего: нет |
Ошибку нашел. Функцию надо писать со всеми префиксами. А также отдельно объявить переменные для дальнейшего использования.
Вот правильный вариант: ...
... Совершенно непонятно, зачем нужны strict, warnings, diagnostics и даже eval, если почти всегда идет ошибка 500. Как выводить все ошибки в браузер??? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
|
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: 1 Всего: 1 |
vechik, надо хотя бы чуть-чуть перл подучить, а?
Ну зачем Вы используете $result = eval{($s,$mks)=Time::HiRes::gettimeofday();}; ? Time::HiRes используется для вычисления точного времени, а eval замедляет его получение. зачем strict - затем, чтобы в браузер шла ошибка 500, без strict ошибок будет меньше, но программа может начать работать неправильно. Функцию можно писать с префиксами, можно без. В документации всё описано. Но с префиксами может и лучше. Чтобы видеть ошибки, запускайте свои скрипты без браузера. Зачем Вы в браузер суёте неотлаженные скрипты? Во всяком случае в error_log должны быть сообщения об ошибках, которые не видны в браузере. Если компиляция скрипта не проходит, то fatalsToBrowser не проходит. Кстати, этот тэг есть в CGI. |
|||
|
||||
| RomanCh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 23.8.2009 Репутация: нет Всего: нет |
Почему-то мне кажется что кто-то пытается заниматься чем-то стоя в гамаке...
Может конечно я сыграю в капитана, но по-моему проблема решается "очень сложно", примерно вот так:
В cgi окружение надеюсь автор сам сможет впихнуть Добавлено через 2 минуты и 42 секунды PS топикстартер, попробуйте использовать команду man Time::HiRes или хотя бы посмотрите тут. |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |