use warnings; use strict; my @aoa = ( [qw(1 1 1 1)], [qw(2 2 2)], 'a string', [qw(3 3 3 3 3 3 3)], {a => 1, b => 2}, ); my $index = 0; for (@aoa){ if (ref $_ eq 'ARRAY'){ my $element_count = scalar @$_; print "elem $index has $element_count elements\n"; } else { print "elem $index is not an array reference\n"; } $index++; } #### elem 0 has 4 elements elem 1 has 3 elements elem 2 is not an array reference elem 3 has 7 elements elem 4 is not an array reference