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

发布于 2024-12-03 08:27:25 字数 419 浏览 3 评论 0原文

我的主 Perl 脚本包含

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

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

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

我知道我可以使用 main:: 命名空间来检索全局变量,例如 $main::x,但以下代码不起作用 $main: :系统->{'路径'}->{'根'}

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

我做错了什么?

I have my main Perl script which contains

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

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

How can I access the $System->{'Path'}->{'root'} variable from an external module?

I know I can use the main:: namespace to retrieve global variables, such as $main::x, but the following doesn't work $main::System->{'Path'}->{'root'}.

I tried also different syntaxes but I'm not able to get it.

What am I doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

万劫不复 2024-12-10 08:27:25

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

请改为使用 our 来声明它。

Variables declared with my only have lexical scope and are not visible in a package.

Declare it with our instead.

贩梦商人 2024-12-10 08:27:25

“应对范围界定”:

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

"Coping with Scoping":

  http://perl.plover.com/FAQs/Namespaces.html
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文