|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Andrey Sapozhnikov 2:5020/400 02 Apr 2002 15:43:13 To : Igor Gerdler Subject : Re: Возможные действия --------------------------------------------------------------------------------
Igor Gerdler wrote:
> Добрый день, уважаемый Дмитрий!
>
>
>>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;
> }
> }
>
> Всего доброго!
> Игорь Гердлер
>
>
>
Хорошее разъяснение. Вот только к данной ошибке оно не имеет никакого
отношения (за исключением первых двух строк). Все остальное скорее
описывает причины возникновения:
Variable "$string" will not stay shared
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/5284106ca89a.html, оценка из 5, голосов 10
|