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
爲什麼在刪除相應的符號表條目之後從「$ 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::{...}
的值的glob被編譯的代碼直接引用,所以不存在的符號表項不起作用。