| Walt Mankowski on 23 Nov 2003 23:04:53 -0500 |
|
Last night I was working on a little script that entailed my writing 6
nested for loops. At the innermost loop I needed to know what all 6
indices were, so instead of using $a, $b, $c, etc., I decided it would
make the code cleaner if I used an array instead.
So I wrote something like this:
my @c;
foreach $c[0] (0..5) {
foreach $c[1] ($c[0]..5) {
foreach $c[2] ($c[1]..5) {
...
I was surprised to learn that this is invalid Perl, and that the index
variable needs to be a normal scalar. But I can't find anything in
either the Camel or the Perl man pages where this is documented.
perlsyn just says it's supposed to be a "variable", but it doesn't
define was a "variable" is.
In nearly every other case I can think of in Perl, array elements work
just like scalars. You can, for instance, take references to them and
use local on them. In fact, a reference to an array element says that
it's a scalar reference.
So what's so special about foreach loops that array elements aren't
permitted? And if they are explicitly forbidden, where is that
documented?
Thanks.
Walt
Attachment:
pgpWr0rV6EPac.pgp
|
|