in reply to 2d arrays and 'Can't use string as an ARRAY ref'
OUTER: foreach my $animal ($twoDimArray[0]) { [download]
You have to dereference the array in $twoDimArray[0]:
OUTER: foreach my $animal (@{$twoDimArray[0]}) { [download]