删除相应的符号表键入之后,为什么要从“ $ n”和“ $ m”中获得值?

#!/usr/bin/env perl
use warnings;
use 5.012;

package Foo;

our $n = 10;
our $m = 20;

delete $Foo::{'n'};
delete $Foo::{'m'};

say $n; # 10
say $m; # 20
有帮助吗?

解决方案

因为符号表仅在编译时间(或通过符号参考)使用。全球的价值 $Foo::{...} 直接由编译的代码引用,因此无较长的符号表条目没有效果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top