use strict; use warnings; use Benchmark qw(:all); sub without_undef { # Create a large hash my %hash; my $count = 3_000_000; $hash{$count} = rand(10) while $count--; } sub with_undef { # Create a large hash my %hash; my $count = 3_000_000; $hash{$count} = rand(10) while $count--; # Undefine it undef %hash; } cmpthese(20, { 'Without undef' => \&without_undef, 'With undef' => \&with_undef, });