use Benchmark qw(cmpthese); my $size = $ARGV[0] || 1000; my @array = (1..$size); sub undef_it { undef @array; $array[$_]=$_ foreach (0..$size-1); return; } sub empty_it { @array = (); $array[$_]=$_ foreach (0..$size-1); return; } sub empty_elements { undef $_ for @array; $array[$_]=$_ foreach (0..$size-1); return; } sub assign_list_of_undefs { @array = (undef) x $size; $array[$_]=$_ foreach (0..$size-1); return; } sub undef_resize { undef @array; $#array = $size; $array[$_]=$_ foreach (0..$size-1); return; } sub empty_resize { @array = (); $#array = $size; $array[$_]=$_ foreach (0..$size-1); return; } cmpthese( -10, { undef_it => \&undef_it, empty_it => \&empty_it, empty_elements => \&empty_elements, assign_list_of_undefs => \&assign_list_of_undefs, undef_resize => \&undef_resize, empty_resize => \&empty_resize, });