in reply to Re^2: for loop localisation bug?
in thread for loop localisation bug?
Fair enough. My choice of the word broken, even when expressed only as 'my opinion', was probably rash.
I should have said, unintuative, unhelpful or (as I did) Doing What I Didn't Mean.
By using a predeclared variable as the loop counter, I am explicitly attempting to retain the exit value of loop counter. This behaviour is implicitly overriding that attempt -- in order to provide a behaviour that is available to me explicitly, by declaring the loop variable within the for loop construct for my $n ( ... ) -- and hence not doing what I mean.
I understand, utilise, and admire the design of the aliasing done by the for loop, and I agree with you that it is a useful feature that is DWIM in most instances. The fact that I couldn't explicitly override it when I tried to, took me by surprise, and (still) leaves me wishing that I could.
I guess that this is a throwover from pre-lexical days rather than an explicitly sought-after design feature. Then, someone will pop up and tell me that I guess wrong:)
In any case, I didn't mean to indicate that it should be fixed at this late stage, just that I would prefer that implicit behaviours would take a back seat to explicit behaviours. In most cases, perl gets that right (IMO), but in this instance, probably as a matter of history, I think it gets this wrong.
No biggy, just an embarrased reaction to an implicit behaviour (that I had never before encountered) overriding my explicit attempt to define WIM. Despite reducing the problem to it's simplest in a test script and spending half an hour staring at it to see what I was doing wrong, it turned out to be "user error".
I didn't even consider looking it up, because based upon both my intuition, and experience of other languages, the behaviour I was seeing "couldn't possibly be correct". The fact that it is documented as working this way means it is 'correct', but I would never have guessed that it would be so.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re^2: for loop localisation bug?
by greenFox (Vicar) on Dec 30, 2003 at 11:27 UTC | |
|
Re^4: for loop localisation bug?
by Aristotle (Chancellor) on Dec 30, 2003 at 13:27 UTC | |
|
Re^2^2: for loop localisation bug?
by Roy Johnson (Monsignor) on Dec 30, 2003 at 16:30 UTC |