in reply to Of foreach loops and counting

Hmm, if you need to keep track of iteration in a loop, then you should use for instead of foreach.
for (my $i=0; $i < $#array; $i++) { #print every third line print "$array[$i]\n" if (($i % 3)==0); #or even more consise print "$array[$i]\n" unless ($i%3); }
I know that for is a synonym for foreach, but I simply prefer to use a for construct if I am going to need the current iteration. Guess it's the C inside me. Oh, thanks to KM - I'll be more idiomatic next time. ;)

/me seeks Priest to exorcise evil C demons.

Replies are listed 'Best First'.
RE: Re: Of foreach loops and counting
by KM (Priest) on Aug 09, 2000 at 20:18 UTC
    I just wanted to comment that this is a very C like way of doing this, and is more idiomatically written as (or something similar as far as the loop construct):

    for (0..$#array) { print $array[$_]; }

    Cheers,
    KM

RE: Re: Of foreach loops and counting
by eak (Monk) on Aug 09, 2000 at 20:08 UTC
    for is a synonym of foreach. you make the decision on which one to use based on readabilty, since both behave exactly the same.
    --eric