Scalar value @msgs[0] better written as $msgs[0] at f1.pl line 5. #### use strict; use warnings; use Data::Dumper; my @msgs; push @msgs, [ "1st array: line 1", "1st array: line 2" ]; push @msgs, [ "2nd array: line 1", "2nd array: line 2", "2nd array: line 3" ]; print Dumper(\@msgs); my $i = 0; for my $arr (@msgs) { ++$i; print "array $i:\n"; for my $line (@{$arr}) { print " $line\n"; } }