加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – __PACKAGE __-> {foo}是什么意思?

发布时间:2020-12-15 21:20:05 所属栏目:大数据 来源:网络整理
导读:我在旧代码中重构一个perl模块,这是模块的一个功能: sub get_user { my $user = __PACKAGE__-{user}; if (!defined $user) { # more code __PACKAGE__-{user} = $user; } return $user;} 该模块使用严格的编译。并且没有定义包变量。 __PACKAGE __- {user}
我在旧代码中重构一个perl模块,这是模块的一个功能:
sub get_user {
    my $user = __PACKAGE__->{user};
    if (!defined $user) {
       # more code
       __PACKAGE__->{user} = $user;
    }
    return $user;
}

该模块使用严格的编译。并且没有定义包变量。
__PACKAGE __-> {user}是什么意思?

解决方法

__PACKAGE__是当前包的名称;您的代码正在使用它作为符号散列引用。所以如果你的包是foo,它设置$ foo :: foo {‘user’}。这是一件奇怪的事情;我怀疑这可能是一个错误。

因为它是一个象征性的参考,它不应该被严格的允许。然而,似乎至少当当前的包具有多个部分(例如Foo :: Bar,而不仅仅是Foo)时。不过,我不会依赖这个错误。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读