Я читал Как мне получить доступ к счету хэша Perl?, и там предлагаются как Devel::Refcount::refcount
, так и Devel::Peek::SvREFCNT
.
Но они не возвращают одинаковые подсчеты ссылок. Почему это?
Здесь представлен измененный пример из perldoc Devel::Refcount
:
use Devel::Peek;
use Devel::Refcount;
my $anon = [];
printf "Anon ARRAY $anon has %d/%d reference\n",
Devel::Refcount::refcount($anon),
Devel::Peek::SvREFCNT($anon);
my $otherref = $anon;
printf "Anon ARRAY $anon now has %d/%d references\n",
Devel::Refcount::refcount($anon),
Devel::Peek::SvREFCNT($anon);
который печатает:
Anon ARRAY ARRAY(0x8b10818) has 1/1 reference
Anon ARRAY ARRAY(0x8b10818) now has 2/1 references
Обратите внимание на последнее несоответствие 2/1...
(Если окажется, что я не делаю что-то глупое, я добавлю ссылку из Как мне получить доступ к количеству ссылок хеша Perl? здесь)