8

为什么我在删除相应的符号表条目后从“$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
4

1 回答 1

10

因为符号表仅在编译时使用(或通过符号引用)。作为 的值的 glob$Foo::{...}由编译后的代码直接引用,因此不再存在的符号表条目无效。

于 2011-01-07T08:13:46.340 回答