Автор Тема: ошибка \'called too early to check prototype\'  (Прочитано 4623 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
ошибка \'called too early to check prototype\'
« : 04 Июня 2004, 16:24:16 »
В error.log апача появилась следующая ошибка:
main::show() called too early to check prototype at c:\\server\\cgi\\script.pl line 30.
Функция show() вызывается на 30-й строке скрипта, а описывается позднее.
При этом, во-первых, несмотря на ошибку, скрипт работает нормально, во-вторых, после создания и использования этой функции эта ошибка поначалу не возникала, она появилась в дальнейшем, когда были добавлены другие функции, и вообще вся программа выросла.
Из-за чего это может быть? Чем это грозит? И как это можно исправить?

p.s. Я помню, что в Си, если тело функции было ПОСЛЕ её вызова, то ДО вызова нужно было указать прототип - имя функции и список параметров. Но на Перле неоднократно писал тело функции после вызова, и всё было Ok.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
ошибка \'called too early to check prototype\'
« Ответ #1 : 04 Июня 2004, 16:31:28 »
perldoc perldiag
Цитировать
(W prototype) You\'ve called a function that has a pro-
           totype before the parser saw a definition or declara-
           tion for it, and Perl could not check that the call
           conforms to the prototype.  You need to either add an
           early prototype declaration for the subroutine in
           question, or move the subroutine definition ahead of
           the call to get proper prototype checking.  Alterna-
           tively, if you are certain that you\'re calling the
           function correctly, you may put an ampersand before
           the name to avoid the warning.  See perlsub.
The documentations is your friend

Оффлайн synthez

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 104
  • +0/-0
  • 0
    • Просмотр профиля
ошибка \'called too early to check prototype\'
« Ответ #2 : 04 Июня 2004, 19:22:37 »
у меня такая же ошибка была, просто вызов функций надо делать после описания...
Software  like sex - it\'s better when it\'s free

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28