sub get_user { my $user = __PACKAGE__->{user}; if (!defined $user) { # more code __PACKAGE__->{user} = $user; } return $user; }
该模块使用严格的编译。并且没有定义包变量。__PACKAGE __-> {user}是什么意思?
因为它是一个象征性的参考,它不应该被严格的允许。然而,似乎至少当当前的包具有多个部分(例如Foo :: Bar,而不仅仅是Foo)时。不过,我不会依赖这个错误。