|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Igor Gerdler 2:5020/400 02 Apr 2002 11:59:48 To : Dmitry Sergeev Subject : Возможные действия --------------------------------------------------------------------------------
Добрый день, уважаемый Дмитрий!
> global symbol $string requires explicit package name.
В сообщении сообщается, что нужно явно указать имя пакета для используемой
переменной. Сообщение обычно появляется, когда ты используешь переменную не
объявив ее в текущем пространстве имен (name space) или когда ты используешь
переменную в функции, описанной внутри другой функции:
sub func1 {
my $var1 = 13;
my $var3 = func2();
sub func2 {
my $var2 = $var1*7;
return $var2;
}
}
Мне приходилось сталкиваться с такой ошибкой при работе с mod_perl используя
модуль Apache::Registry, т.к. в этой случае твой скрипт на самом деле
является телом функции handler().
В качестве рекомендации могу предложить объявлять все используемые
переменные и если нужно иметь глобальные в пространстве имен скрипта
переменные - объяви их в основной части скрипта и передавай в функции в
качестве параметров.
Hапример:
sub func1 {
my $var1 = 13;
my $var3 = func2($var1);
sub func2 {
my $var1 = shift;
my $var2 = $var1*7;
return $var2;
}
}
Всего доброго!
Игорь Гердлер
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/6577278db86e.html, оценка из 5, голосов 10
|