在Perl中设置全局变量值

时间:2010-12-29 07:03:26

标签: perl

我有一个perl模块,它将某个全局变量的值设置为常量。 我需要将这些全局变量的值设置为只有在调用new()时才可用的值。

有什么办法可以实现吗?

1 个答案:

答案 0 :(得分:3)

您使用our将变量声明为全局变量。然后,如果它们在词法范围内将其声明为our变量,则可以从同一包中的其他位置访问它。从包外部,您只能使用package :: prefix。

访问它

示例:

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";