my $i = 30000; my %h = (new => {}); my $r = \%h; for (0..$i) { print $_, " "; $r = $r->{new}; $r->{new} = {}; } print "end\n"; #### ...29998 29999 30000 end Segmentation fault (core dumped) #### my $i = 30000; my %h = (new => {}); my $r = \%h; for (0..$i) { print $_, " "; $r = $r->{new}; $r->{new} = {}; } undef %h; print "end\n";