good chemistry is complicated, and a little bit messy -LW |
|
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
$tables{$day}->{$state} = \[$deathsToday, $m, $double, $intercept, $corr]; This is setting that hash value to a reference to a reference to an anonymous array, not just a typical reference to an anonymous array ("arrayref"). Is that what you want? If not, you can drop the \ and access the first element via $tables{$day}{$state}[0] and the whole array via @{$tables{$day}{$state}}, or, on Perl 5.24 or higher*, $tables{$day}{$state}->@*. Note the -> operator can be dropped between {}'s and []'s. Otherwise, if you want to stick with your current data structure, to access the first element you'll have to say ${$tables{$day}{$state}}->[0], or, on Perl 5.24 or higher*, $tables{$day}{$state}->$*->[0]. In other words, because you've got an extra reference in there, you need the extra dereference (${...} or ->$*) before doing the ->[0] dereference to get the array element. * On Perl 5.20 and 5.22, this feature can be enabled with use feature 'postderef';. See also perlreftut and perlref. Update: Minor edits and added second sentence to second paragraph. In reply to Re: accessing an anonymous array
by haukex
|
|