G'day loris,
Hash keys have no inherent order. If you want to retain the order you've shown, you'll need to specify it explicitly.
Here's two solutions in the one script. Pick whichever is most appropriate for you.
#!/usr/bin/env perl use 5.010; use strict; use warnings; my $animals = { gnu => { humps => 0, }, dromedary => { humps => 1, }, camel => { humps => 2, }, }; my @humps; push @humps, $_->{humps} for map { $animals->{$_} } keys %$animals; say "Unsorted humps: @humps"; my @sorted_animals = qw{gnu dromedary camel}; my @sorted_humps; push @sorted_humps, $_->{humps} for map { $animals->{$_} } @sorted_ani +mals; say "Sorted humps: @sorted_humps";
Outputs:
$ pm_nested_hash_extract.pl Unsorted humps: 2 0 1 Sorted humps: 0 1 2
-- Ken
In reply to Re: Extracting values from nested hashrefs
by kcott
in thread Extracting values from nested hashrefs
by loris
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |