while (my($key, $value) = each %source) { $target{$key} = $value } #### cmpthese( -1, { grandfather => sub { my %t = %target; @t{keys %source} = values %source; }, sleepyjay => sub { my %t = %target; %t = ( %t, %source ); }, ruzam => sub { my %t = %target; while ( my($key, $value) = each %source) { # $target{$key} = $value <-- oops! $t{$key} = $value } }, }); __END__ Rate sleepyjay ruzam grandfather sleepyjay 905/s -- -58% -61% ruzam 2162/s 139% -- -8% grandfather 2349/s 160% 9% --