in reply to 2d arrays and 'Can't use string as an ARRAY ref'

OUTER: foreach my $animal ($twoDimArray[0]) {

You have to dereference the array in $twoDimArray[0]:

OUTER: foreach my $animal (@{$twoDimArray[0]}) {