in reply to How cand I find each dimension x,y,z of a 3D arrays
This code will recurse through the elements,
and print the number of array-elements for each
array in your structure. Will not decent hashes
but can be hacked a bit to do that as well.
This example prints:use strict; my @a = ([([0..3] ) x 4]) x 3; arraylength( \@a ); sub arraylength{ my $a = shift; my $dim = 0; _length( $a, $dim ); } sub _length{ my $a = shift; my $dim = shift; if ( ref( $a ) =~ /ARRAY/ ){ print "\t" x $dim; print "dim $dim -> ".(scalar @$a)." elements"; print "\n\n" if $dim == 0; print "\n" if $dim == 1; _length( $_, $dim + 1) for ( @$a ); print "\n"; } }
dim 0 -> 3 elements dim 1 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 1 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 1 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements dim 2 -> 4 elements
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Answer: How cand I find each dimension x,y,z of a 3D arrays
by ton (Friar) on Apr 09, 2001 at 20:57 UTC |
In Section
Seekers of Perl Wisdom