Установка значения глобальной переменной в Perl - PullRequest
2 голосов
/ 29 декабря 2010

У меня есть один модуль perl, который устанавливает постоянные значения некоторой глобальной переменной. Мне нужно установить значение этих глобальных переменных равным значению, которое доступно мне только при вызове new ().

Есть ли способ, которым я могу этого достичь?

1 Ответ

3 голосов
/ 29 декабря 2010

Вы используете our для объявления переменной как глобальной. Затем вы можете получить к нему доступ из других мест в том же пакете, если они также объявят его как переменную our в своей лексической области видимости. Из-за пределов пакета вы можете получить к нему доступ только с помощью пакета :: префикс.

Пример:

package Foo;
use strict;
use warnings;

sub new {
    our $bar = $_[1];
    return bless {}, $_[0];
}

sub get_bar {
    our $bar;
    return $bar;
}
1;

В другом файле:

use strict;
use warnings;
use Foo;
my $foo = Foo->new('baz');
print "This is baz: ", $foo->get_bar, "\n";
print "So is this: ", $Foo::bar, "\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...