my %new_client_hash; foreach my $old_key (keys %clients) { my $new_key = $clients{$old_key}{new_sys_id}; delete $clients{$old_key}{new_sys_id}; $new_client_hash{$new_key} = $clients{$old_key}; $new_client_hash{$old_key} = \$new_client_hash{$new_key}; }