Автор Тема: Ошибки. Help!!!  (Прочитано 5662 раз)

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

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ошибки. Help!!!
« : 11 Июня 2003, 11:38:15 »
1) Вот такой Warning вылазит на всех вызываемых функциях: main::proc(
) called too early to check prototype at C:\\cgi-bin\\script.pl line 43
, как от него избавиться и что это такое?
2) Can\'t use string ("") as a symbol ref while "strict refs" in use at C:\\cgi-bin\\script.pl line 1178, в этом месте стоит просто открытие файла, понять не могу в чем там дело, этой строки такой и близко нет. также эта ошибка вылазит и в других местах, тоже при открытии файла. Открываю все абсолютно нормально.

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ошибки. Help!!!
« Ответ #1 : 12 Июня 2003, 21:47:51 »
Неужели никто не знает???
И еще вопрос, у меня есть скрипт (очень большой), так вот, когда я его запускаю с ключем -w, то он виснет почему такое может быть (самые распространенные причины)?
Спасибо.

Оффлайн NCRangeR

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.mephix.h1.ru
Ошибки. Help!!!
« Ответ #2 : 12 Июня 2003, 23:06:43 »
C++
Было такое (насчет зависания большого скрипта), причин не знаю. :(
Причем вис, зараза, даже когда в самом начале ставил die "!!";

Насчет - посмотри, не забыл ли где кавычки закрыть, он эту штуку может расценивать как обращение к оператору < > (вроде такое один раз у меня было)...

Про Warning - пиши в начале скрипта прототип вызываемой функции.
sub roc();
- How does the CPAN work?
 - With dark magic, evil-looking sacrificial knives and scantily clad virgins under pale moonlight.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Ошибки. Help!!!
« Ответ #3 : 13 Июня 2003, 08:18:32 »
Цитировать
C++:
с ключем -w, то он виснет
Ага, я тоже сталкивался с этим. Причину так и не выяснил. Я так понял, что слишком много предупреждений вываливалось в логи. Если их было немного, скрипты не висли, независимо от длинны. Бороться можно отключая -w или устраняя причины предупреждений.
Все болезни от нервов, только сифилис от удовольствия

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ошибки. Help!!!
« Ответ #4 : 13 Июня 2003, 10:44:48 »
Вставил прототипы функций (в том же порядке как идут функции) в начале скрипта, варнинги ушли, но теперь появились ошибки типа:
Too many arguments for main::error at C:\\cgi-bin\\script.pl line , раньше ошибки подобного рода появлялись, но только в том случае если я из одной функции вызывал другую, которая описана по тексту выше или ниже (не помню уже), но смысл в том, что ошибка возникала из-за расположения в тексте одной функции относительно другой.
Вообще этот скрипт работал, я решил структурироваь текст, и вместо табуляций вставить пробелы, удалил все табуляции и отструктурировал, работать он перестал и стал жутко глючить:(
Что это может быть?

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Ошибки. Help!!!
« Ответ #5 : 13 Июня 2003, 11:00:20 »
C++
Если скрипт работает на Unix-системах, то он очень чувствителен к кодировке в которой написан скрипт, некоторые программы редактирования скриптов, при его открытии, берут и конвертят его в другую кодировку или сохраняют в другой. У меня такое уже было, просто открыл файл, подредактировал и сохранил, у меня на локальном сервере под win2k все работало нормально, но когда залил на сервер под Linux скрипт, естественно, не заработал... :-(

P.S. Благо была резервная копия скрипта

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ошибки. Help!!!
« Ответ #6 : 13 Июня 2003, 11:05:46 »
Phoinix
С кодировкой точно все в порядке, я за этим слежу, да он и под виндой и под линуксом глючит:(

Оффлайн ReDrum

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://russiajournal.com
Ошибки. Help!!!
« Ответ #7 : 13 Июня 2003, 17:15:46 »
%s() called too early to check prototype

(W prototype) You\'ve called a function that has a prototype before the parser saw a definition or declaration 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. Alternatively, if you are certain that you\'re calling the function correctly, you may put an ampersand before the name to avoid the warning. See the perlsub manpage.

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ошибки. Help!!!
« Ответ #8 : 13 Июня 2003, 17:29:19 »
ReDrum
С прототипами я уже разобрался....
Теперь вот это мучает:
Too many arguments for main::error at C:\\cgi-bin\\script.pl line
:(

Оффлайн ReDrum

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://russiajournal.com
Ошибки. Help!!!
« Ответ #9 : 13 Июня 2003, 17:58:30 »
Too many arguments for %s

(F) The function requires fewer arguments than you specified. ;)=

Оффлайн ReDrum

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://russiajournal.com
Ошибки. Help!!!
« Ответ #10 : 13 Июня 2003, 18:01:21 »
In common way to resove problems place
use strict
read faq for more

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Ошибки. Help!!!
« Ответ #11 : 13 Июня 2003, 22:10:26 »
Can\'t use string ("") as a symbol ref while "strict refs" in use at C:\\cgi-bin\\script.pl line 1178,
С этой ошибкой покончено!
Если кому интересно, то дело было в том, что в строку use CGI qw(all) случайно затесалось двлеточие, т.е. было так: use CGI qw(:all) .
Ошибка, в основном, выскакивала при открытии файлов.
А вот об этой ошибке Too many arguments for main::error at C:\\cgi-bin\\script.pl line
честно говоря ничего не понял, в английском не силен совсем:(

Оффлайн КшЫуфксрук

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://risearch.org/
Ошибки. Help!!!
« Ответ #12 : 16 Июня 2003, 15:41:18 »
>> С прототипами я уже разобрался....

Сомневаюсь. Просто они теперь выдают другую ошибку. А зачем они вообще нужны, можешь пояснить?

>>> called too early to check prototype at C:\\cgi-bin\\script.pl line 43


А эту строку и строку, где объявлена эта функция, очень сложно было сюда скопировать?

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
Ошибки. Help!!!
« Ответ #13 : 23 Августа 2003, 23:58:49 »
2C++
Цитировать
Если кому интересно, то дело было в том, что в строку use CGI qw(all) случайно затесалось двлеточие, т.е. было так: use CGI qw(:all)

Оно как раз-таки затесалось туда совсем не случайно. Если ты пишешь use CGI qw(all), то qw(all) не значит ровным счётом ничего. Ты пытаешься экспортировать функцию/свойство all, которого нет в модуле CGI.pm. Используя же use CGI qw(:all) ты получаешься экспортированный класс (может, это называется как-то по-другому?) функций/свойств :all.
 BlueJacking среди нас

 

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