in reply to Sorting an array of hashes
You should try use diagnostics; when things get tough, and use warnings; unless you really know you wont need it (you seldom can know that), but the hints use warnings and diagnostics would give here isn't trivial to understand.
You are just overdoing your sort criteria:
gives:
You are just overdoing your sort criteria:
use strict; use warnings; my @AoH = ( {a => 1, b => 2, c => 3}, {a => 1, b => 2}, {a => 1, b => 2, c => 3, d => 4}, {a => 1} ); my @AoH_sorted = sort { (keys(%{$b})) <=> (keys(%{$a})) } @AoH; foreach my $i (0 .. $#AoH_sorted) { print "$i\t"; # if (exists $AoH_sorted[$i]) { # no need to check if exist when usi +ng foreach my %hash = %{$AoH_sorted[$i]}; foreach my $key (keys %hash) { print "$key\t"; } # } print "\n"; }
gives:
0 c a b d 1 c a b 2 a b 3 a
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Sorting an array of hashes
by amarquis (Curate) on Mar 26, 2008 at 12:39 UTC | |
Re^2: Sorting an array of hashes
by BKB (Novice) on Mar 27, 2008 at 08:23 UTC | |
by stiller (Friar) on Mar 27, 2008 at 08:57 UTC | |
by BKB (Novice) on Mar 27, 2008 at 10:46 UTC | |
by stiller (Friar) on Mar 27, 2008 at 10:57 UTC |
In Section
Seekers of Perl Wisdom