in reply to Re^5: Array Processing
in thread Array Processing
My initial reaction was that it's wasteful to reassign the entire array, but then I saw you had already noted this inefficiency.my @a = qw(1 2 3 4 5); while ((my $a, @a) = @a) { printf "\$a is now '%s', and \@a is now (%s)\n", $a, join(')(',@a) +; } # Output ... $a is now 1, and @a is now (2)(3)(4)(5) $a is now 2, and @a is now (3)(4)(5) $a is now 3, and @a is now (4)(5) $a is now 4, and @a is now (5) $a is now 5, and @a is now ()
And yes, it's a reasonable observation about the possibility of an undef element, but in most cases one doesn't need to deal with arrays containing undefined values. Then of course you'd be better off with something like:
Or what BUU suggests next ... :-)while (@a) { my $a = shift @a; # Use $a ... }
|
|---|