Hi Christopher,
Declarations within loops can be tricky. I pretty much try to avoid them. If I need
a variable within any kind of loop, I declare it before entering the loop. This may
or may not be necessary, but it makes sense until or unless I am certain that, for
instance while( my $Test++ < $Target) would not cause the interpreter to see a
redeclaration with each pass.
Under any circumstances, not using strict is a false economy. You only put off
problems by doing so. I found out the hard way, and had about a days work in
correcting small tweaks that had not caused problems onm y system, but would not run
on the server. Using strict compilation makes this kind of problem less likely to
occur.
Joseph
"Christopher D. Lewis" wrote:
> On Tuesday, January 7, 2003, at 09:02 PM, Peter Scott wrote:
> > You made a false economy by not using strict. Yes, you would have to
> > fix those errors - mostly due to not declaring *everything* with
> > 'my'. But to leave it out is to shoot yourself in the foot.
> >
> > You have managed to blow your whole leg off with a .22.
>
> I appreciate your keen eye for my nonsensical }s typo. I had tried
> "use strict" in an earlier version, but got errors I could not
> decipher. Adding back "use strict" and troubleshooting away some other
> errors, I get as error #1:
> "my" variable @rawRollArray masks earlier declaration in same scope at
> ./nudice-strict_test line 114.
>
> Line 114 (which now points to the right line, thank you so much!!) only
> shifts an element off of @rawRollArray, which has been declared as a
> "my" variable earlier on:
>
> my @rawRollArray = roll(@currentRollRequest); # produces raw roll array
> from roll request array
> while @rawRollArray {
> my $thisRoll = shift(@rawRollArray); # holds one die roll to be
> subjected to per-die min/max rules
> ...
> }
>
> Since I could make nothing of this sort of "error" I gave it up,
> looking instead for errors of which I could make some sense. One way I
> sought to eliminate this was to eliminate all the "my" variables, which
> in turn required me to ditch "use strict" which began to complain
> mightily ... which is how I got a pile of (garbage) code with "use
> strict" commented out. Can you direct me to a resource which will help
> me to see what needs to happen here? From my cursory view, it seems
> any subsequent mention or use of a properly declared "my" variable will
> result in the error that it "masks earlier declaration in same
> statement at ..."
>
> Help! What to do?
>
> Thanks again,
> Chris
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]