$coord_{AB}{order} = 1; $coord_{PL}{order} = 2; $coord_{B}{order} = 3; ... foreach my $key1 ( sort { $coord_{$a}{order} <=> $coord_{$b}{order} } keys %coord_ ) { ... }