vindaloo has asked for the wisdom of the Perl Monks concerning the following question:
I would like to sort a hash not in any of the ways I have seen in tutorials (therefore I am open to advice on rethinking the problem too). I need to sort these keys, in this order:
- start
- stop
- step
sort() on these strings will obviously return: start, step, stop, without my own sorting function. I have read japhy's Resorting to Sorting article and have attempted to apply some of those approaches, but I need a hand.
use strict; use warnings; use diagnostics; my @aoh; push @aoh, { "start" => .4, "stop" => .6, "step" => .1 }; push @aoh, { "start" => .3, "stop" => .5, "step" => .1 }; push @aoh, { "start" => .0, "stop" => .2, "step" => .1 }; push @aoh, { "start" => .5, "stop" => .7, "step" => .1 }; my $aoh = \@aoh; for my $point ( @{$aoh}) { #for my $type ( sort keys %$point ) { for my $type ( sort by_pref keys %$point ) { print "$type\t"; } print "\n"; } sub by_pref { $a cmp $b; #advice? }
P.S. I am not interested in forcing the insertion order using Tie::IxHash for a few different reasons.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: sorting a hash by keys, according to preference
by dave0 (Friar) on Apr 13, 2005 at 04:02 UTC | |
by vindaloo (Novice) on Apr 13, 2005 at 04:12 UTC | |
Re: sorting a hash by keys, according to preference
by Tanktalus (Canon) on Apr 13, 2005 at 03:57 UTC | |
Re: sorting a hash by keys, according to preference
by crashtest (Curate) on Apr 13, 2005 at 04:54 UTC | |
by vindaloo (Novice) on Apr 14, 2005 at 01:09 UTC |
Back to
Seekers of Perl Wisdom