http://www.perlmonks.org?node_id=439735


in reply to Foreach Loops

You can have a counter:
my $i = 0; foreach (@myarray) { # stuff goes here $i++; }
A slight improvement over holli's in that you can access the entire i-1 previous elements.

Replies are listed 'Best First'.
Re^2: Foreach Loops
by Roy Johnson (Monsignor) on Mar 15, 2005 at 22:09 UTC
    You should really put the counter increment in the continue block, though, in case of next or redo. Compare:
    my @arr = ('a'..'m'); my $i=0; foreach (@arr) { # stuff goes here next if $i%4 == 0; print "$i: $_\n"; } continue { ++$i } $i = 0; foreach (@arr) { # stuff goes here next if $i%4 == 0; print "$i: $_\n"; ++$i; }

    Caution: Contents may have been coded under pressure.