如何从模块内部访问主命名空间中的哈希

时间:2011-09-05 07:56:14

标签: perl strawberry-perl

我的主要Perl脚本包含

my $System = {
    Path =>
    {
        root => 'hello'
    }
}

print $System->{'Path'}->{'root'}; # prints 'hello'

如何从外部模块访问$System->{'Path'}->{'root'}变量?

我知道我可以使用main::命名空间来检索全局变量,例如$main::x,但以下内容不起作用$main::System->{'Path'}->{'root'}

我也尝试了不同的语法,但我无法得到它。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

使用my声明的变量仅具有词法范围,并且在包中不可见。

改为使用our声明。

答案 1 :(得分:1)

“应对范围界定”:

  http://perl.plover.com/FAQs/Namespaces.html