$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
in thread accessing an anonymous array
by WoodyWeaver
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |