in reply to Re^6: grep, map vs. foreach performance
in thread grep, map vs. foreach performance

I do know that for and foreach are synonymous words. I was trying to clarify that in
for (@array) {$_++}
$_ is an implicit alias for the current @array element. While in
for (0 .. $#array) {$array[$_]++}
$_ an alias for the current index.

In your second example there, perl has no idea that $_ is an alias for the "current index." All it knows is that it is an alias for the current list element. The difference between the two examples is only in the contents of the list that the for statement is iterating over.

-sauoq
"My two cents aren't worth a dime.";

Replies are listed 'Best First'.
Re^8: grep, map vs. foreach performance
by Flexx (Pilgrim) on Sep 05, 2002 at 07:28 UTC

    Of course has no idea about what (semanticly) it's an alias for. I just had to find a word (or two) for that anonymous array element (since the range operator creates a temporary array, not a list) it represents, which was an index in our case. I thought that was obvious by not naming it $current_index. ;)

    It's funny that you even brought this up. Seems like Perl has so much magic that one has to point out: "Well, no, Perl does not really understand what you're doing"...

    That aside, I always thought $_ knows far too much! ;)

    So long,
    Flexx