in reply to Updating hash using it's reference ...
It certainly is. For instance, the first element in your array is $array[0]; since this is a hash reference, you can deference it and turn it into a proper hash again by saying %{ $array[0] } (the whitespace isn't necessary; it just improves readability). And since that's just a hash, you can access its elements as usual, e.g. ${ $array[0] }{'somekey'}.
That last bit of syntax is clunky, of course, so Perl provides the -> postfix operator for dereferencing and element access as well; using that, you can also write $array[0]->{'somekey'}, which is much more readable and makes it more obvious what's going on.
Example:
#!/usr/bin/perl use feature qw/say/; use warnings; use strict; my @array = ( { 'Fred' => 'Flintstone', 'Barney' => 'Rubble' } ); say $array[0]; say %{ $array[0] }; say ${ $array[0] }{'Fred'}; say $array[0]->{'Fred'}; $array[0]->{'Betty'} = 'Rubble'; say $array[0]->{'Betty'};
Output:
$ perl test.pl HASH(0x8002bc80) BarneyRubbleFredFlintstone Flintstone Flintstone Rubble $
EDIT: removed superfluous use Data::Dumper; -- good catch, hexcoder. :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Updating hash using it's reference ...
by AnomalousMonk (Archbishop) on Jul 12, 2014 at 13:18 UTC | |
by AppleFritter (Vicar) on Jul 12, 2014 at 16:56 UTC | |
by perlfan (Parson) on Jul 13, 2014 at 11:04 UTC |