srawls has asked for the wisdom of the Perl Monks concerning the following question:
I was working on some obfuscated code, and came across a problem. Well, first what I was trying to do was to do something 12 times (i.e. for(1 .. 12)). I tried this:
And to my surprise it printed 2 through 12. Before I move on, I'll explain what I think should happen. To do this, I'll clean up the formatting a bit:for(++$....$.++.$.) {print "$_\n"}
Now, let's examine those values:for(++$. .. $.++ . $.) #note before I had used ... instead of ..
So, I tried to take it apart and see which individual element was causing the problem, and eventually I came up with this:++$. = 1 $.++ . $. = 12 #the concatenation of 1 and 2.
Now it prints 1 through 11, exactly what I expect. What I think is happening is that the second ++ is effecting the value of $. somehow, before it's supposed to.for(++$....$..$.) #note took out the second ++
This is really baffaling me, so any help is appreciated,
thanks
The 15 year old, freshman programmer,
Stephen Rawls
Back to
Seekers of Perl Wisdom