#!/usr/bin/perl -CSDA use utf8; use Modern::Perl; no warnings qw{uninitialized}; use Data::Dumper; my $tables = { # hash ref "{", keys are day numbers 0 => { # day0 confirmed => [1, 0.334638642561918, 2, 0.873307778517249, 0.8539438, 57158699], deaths => [], }, 1 => { # day1 confirmed => [2, 0.334538642561918, 2, 0.873307778517249, 0.8539438, 57158699], deaths => [], }, 2 => { confirmed => [3, 0.334638442561918, 2, 0.873307778517249, 0.8539438, 57158699], deaths => [], }, }; $$tables{3}{confirmed} = [3, 0.18, 2, 0.849, 0.8, 59]; $$tables{3}{deats} = [2, 3, 4]; $$tables{4} = { confirmed => [4, 1.3, 2, 1.9, 2, 57], deaths => [], }; $$tables{1}{deats}[3] = "three"; $$tables{1}{deats}[5] = "five"; $$tables{5}{alfa} = ["a", "l", "faaaaa"]; for my $d (keys %$tables) { print "\nnext day... $d\n"; for my $t (keys %{$$tables{$d}}) { print "day is $d, table is \"$t\", content: ", (join ", ", @{$$tables{$d}{$t}}), "\n"; } } print "Dumper is: ", Dumper($tables);