On 7/30/07, John W. Krahn <[EMAIL PROTECTED]> wrote:
> Chas Owens wrote:
> > On 7/30/07, Isha M. Renta <[EMAIL PROTECTED]> wrote:
> >> The 13 is the counter for the $inittime array (which actually have 13
> >> numbers and not 15 as it seems) and the 3600 is the number of lines in all
> >> the files. All the files have 3600 lines.
> >>
> >> Isha
> > snip
> >
> > Then you have an off-by-one error.  You are saying
> >
> > for($j=0;$j<=13,$j++) {
> >
> > This will loop 14 times, not 13 times.  This is why C-style for loops
> > are bad.  Don't use them.  If you want to loop over an array use the
> > iterating version of for:
> >
> > for my $element (@array) {}
> >
> > If you want to loop over a range you still should use the iterating
> > version of for:
> >
> > for my $j (1 .. 13) {}
>
> It would probably be better to use:
>
> for my $j ( 0 .. $#array ) {}
snip

No, that is almost always better written as

for my $element (@array) {}

You should only use a range if you want to iterate a specific number
of times or you want to iterate over that range.  Using the position
of last the last element in an array is a big clue that you really
want to iterate over an array, not a range.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to