ハマったので未来の自分のためにメモ書きを残しつつ、今年もよろしくお願い致しますm(_ _)m。 Test::LeakTraceの特性 Test::LeakTrace で、以下のテストは通る。 my %x; no_leaks_ok { $x{x} = undef }; しかし以下のテストは通らない。 my @x; no_leaks_ok { push @x, undef }; これは、@x にエントリが増えた分がリークとしてカウントされるから。じゃあ前者はなぜ大丈夫なのかというと、no_leaks_ok はブロックを2回実行して2回目でリークをカウントするせい。1回目の実行で%xのバケットが1つ増えるが、2回目以降は再利用するのでリークとしてカウントされない。 あと、次のコードは "not ok 1 - leaks 1 <= 0" と言ってる癖にダンプを表示しない。 my %x; my $k