That last bit of syntax is clunky ... the -> postfix operator for dereferencing and element access as well ...
And for even less clunky syntax, Perl understands that any array/hash/code/etc. reference below the topmost level can only be a reference, so it will use the -> operator implicitly if you do not use it explicitly. It's only at the topmost level that you have to supply a -> or not based on the nature of the variable you are accessing: -> must be used with an array/hash/code reference: see Anonymonk's reply for an example of this.
c:\@Work\Perl>perl -wMstrict -le "use feature qw/say/; use Data::Dump; ;; my @array = ( { 'Fred' => 'Flintstone', 'Barney' => 'Rubble', } ); ;; say $array[0]{'Fred'}; ;; $array[0]{'Marge'} = 'Simpson'; say $array[0]{'Marge'}; ;; dd \@array; " Flintstone Simpson [ { Barney => "Rubble", Fred => "Flintstone", Marge => "Simpson" }, ]
See also perldsc (Perl Data Structures Cookbook).
In reply to Re^2: Updating hash using it's reference ...
by AnomalousMonk
in thread Updating hash using it's reference ...
by karthikin2asic
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |