If you aren't necessarily processing every item in the list, but only want to count the number of elements you process, then using a temporary variable as you were doing is a useful alternative to looping over the array indices. It also works when you're doing things like looping over hash keys, where you can't count on having a numeric index implicitly; or processing lines of a file with a while (<>) loop.my $n = 0; foreach (@array) { next if I_dont_care_about($_); do_something_with ($_); print "." if !($n++ % 3); } print "\n";
Update: KM, that is definitely true, and a more efficient and succinct way to count lines when you're interested in the total line count. The method I presented is still useful when you want to count the number of lines you processed, not the total line count so far.
Alan
In reply to Re: Of foreach loops and counting
by ferrency
in thread Of foreach loops and counting
by Cirollo
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |