my $x; for (1..3) { $h{hashslice} = \$x; print(Internals::SvREFCNT($x), "\n"); } #### 2 2 2 #### my $x; my @a; for (1..3) { $h{hashslice} = \$x; print(Internals::SvREFCNT($x), "\n"); push @a, $h{hashslice}; } #### 2 3 4 #### if (!(sv = hv_store(...))) { SvREFCNT_dec(sv); ... }