Таблица символов: удаление записей - PullRequest
8 голосов
/ 07 января 2011

Почему я получаю значения из $ 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

1 Ответ

10 голосов
/ 07 января 2011

Поскольку таблица символов используется только во время компиляции (или через символьную ссылку).На глобус, который является значением $Foo::{...}, непосредственно ссылается скомпилированный код, поэтому запись таблицы символов, которая больше не присутствует, не действует.

...