#!/usr/bin/perl use warnings; use strict; my @keys = 'a' .. 'z'; sub one_by_one { my %hash; undef $hash{$_} for @keys; } sub slice { my %hash; @hash{@keys} = (); } use Benchmark qw{ cmpthese }; cmpthese(-3, { one_by_one => \&one_by_one, slice => \&slice, }); __END__ Rate one_by_one slice one_by_one 267946/s -- -25% slice 359541/s 34% --