sub _length{ my $a = shift; my $dim = shift; if ( ref( $a ) =~ /ARRAY/ ){ print "\t" x $dim; print "dim $dim -> ".(scalar @$a)." elements"; print "\n" if $dim == 0; print "\n"; _length( $_, $dim + 1) for ( @$a ); } }