my %new; foreach $fn (keys %old) { $new{$fn->{FirstNum}}= $fn; delete $fn->{FirstNum}; }