LINUX.ORG.RU

Perl и видимость переменной


0

0

Как сделать так, чтобы переменная была доступна глобально, т.е. во всех модулях, подключаемых к скрипту? Например:

main.pl

#!/usr/bin/perl
our $foo = 1;
use Bar;
. . .

Bar.pm

package Bar;
. . .
print $foo;

Т.е. нужно, чтобы к $foo был напрямую обращаться из Bar.

Можно, конечно, обращаться к ней как $main::foo, но проблема в том, что в mod_perl код выполняется не в main. А надо, чтобы работало везде.

★★★

могу предложить два способа: простой и сложный =)

простой: вместо $foo использовать $ENV{foo}.

сложный: вынести все глобальные переменные в отдельный модуль (MyGlobalVars.pm, например), и тем же экпортером сделать их глобальными. понятно, что все модули, которым будут нужны эти глобальные переменные, должны use'ать MyGlobalVars.

arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.