in reply to Sort AoH by another array
Secondly, note that to work every 'key' of each tuple in @$data must be present in @$key_ordering.my $key_ordering = [8, 1, 5, 3, 9]; my $data = [ {key => 1, name => 'label4'}, {key => 3, name => 'label2'}, {key => 5, name => 'label5'}, {key => 8, name => 'label1'}, {key => 9, name => 'label3'} ];
my %lookup = map { $_->{key} => $_->{name} } @$data; my @ordered = map { {key => $_, name => $lookup{$_}} } @$key_ordering;
Which just suggests to me that $data was the wrong type of data-structure to begin with. If you really need it like that, you might consider maintaining (in parallel) a lookup table mapping 'key' to indexes into @$data.
-David
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sort AoH by another array
by saberworks (Curate) on Nov 06, 2007 at 01:38 UTC | |
by Cody Pendant (Prior) on Nov 06, 2007 at 05:15 UTC | |
by saberworks (Curate) on Nov 06, 2007 at 17:39 UTC |