my @order;
for my $key (keys %HoA) {
if ($key eq 'Foo') {
unshift @order, $key;
} else {
push @order, $key;
}
}
for my $key (@order) { ... }
####
my @order;
for my $key (keys %HoA) {
($key eq 'Foo') ? unshift(@order, $key) : push(@order, $key);
}
####
my @order;
for my $key (keys %HoA) {
splice(@order, ($key eq 'Foo') ? 0 : @order, (), $key);
}
####
my %early = my %late = %HoA; # or map { $_ => 1 } keys %HoA
delete $late{Foo};
delete @early{keys %late};
for my $key (keys %early, keys %late) { ... }