Вы используете 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";