我在阅读如何访问 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 差异...
(如果事实证明我没有做愚蠢的事情,我将添加一个链接,从How can I access the ref count of a Perl hash?到这里)