in reply to HOA with array slice?
I think that the line
is a dead giveaway that you should be using an HoH (or even an AoH). By naming your indices you are inadvertently revealing a secret desire to use meaningfully named keys instead. Go for it:my ($idx_color, $idx_fruit) = (0,1);
...and here's your slice:my $hoh = { keyone => { color => 'green', fruit => 'apple' }, keytwo => { color => 'purple', fruit => 'plum' } };
Actually, since you are using such nondescript names for your first keys, maybe an AoH is most suitable:my ( $color, $fruit ) = @{ $hoh->{ keytwo } }{ qw( color fruit ) };
Granted, come initialization time it gets annoying to re-type the names of the keys so many times. Here's one possible way to avoid that, again featuring slices galore:my $aoh = [ { color => 'green', fruit => 'apple' }, { color => 'purple', fruit => 'plum' }, ]; my ( $color, $fruit ) = @{ $aoh->[ 1 ] }{ qw( color fruit ) };
my @fields = qw( color fruit ); my $aoh; @{ $aoh->[ @$aoh ] }{ @fields } = @$_ for ( [ qw( green apple ) ], [ qw( purple plum ) ] );
the lowliest monk
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: HOA with array slice?
by Transient (Hermit) on May 25, 2005 at 21:34 UTC | |
|
Re^2: HOA with array slice?
by tphyahoo (Vicar) on May 26, 2005 at 09:57 UTC | |
by tlm (Prior) on May 26, 2005 at 12:23 UTC |