如何从模块内部访问主命名空间中的哈希值
我的主 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
my
声明的变量仅具有词法范围,并且在包中不可见。请改为使用
our
来声明它。Variables declared with
my
only have lexical scope and are not visible in a package.Declare it with
our
instead.“应对范围界定”:
"Coping with Scoping":