note
ambrus
<p>
What would you want it to do?
<ol>
<li>
Iterate on two arrays in paralel:
<c>
@name = qw(fred wilma barney betty);
@color = qw(black red blonde black);
for $k (0 .. @name - 1) { print $name[$k] . " - " . $color[$k] . "\n" }
# fred - black
# wilma - red
# barney - blonde
# betty - black
</c>
<li>
Move a sliding window on an array:
<c>
@name = qw(fred wilma barney betty);
for $k (0 .. @name - 2) { print $name[$k] . " - " . $name[$k + 1] . "\n" }
# fred - wilma
# wilma - barney
# barney - betty
</c>
<li>
Take the elements of the array in twos:
<c>
@name = qw(fred wilma barney betty);
for $k (0 .. @name/2 - 1) { print $name[2 * $k] . " - " . $name[2 * $k + 1] . "\n" }
# fred - wilma
# barney - betty
</c>
<li>
Iterate on an array of pairs:
<c>
@data = (["fred", "black"], ["wilma", "red"], ["barney", "blonde"], ["betty", "black"]);
@color = qw(black red blonde black); for $rec (@data) { my($name, $color) = @$rec; print $name . " - " . $color . "\n" }
# fred - black
# wilma - red
# barney - blonde
# betty - black
</c>
</ol>
Or perhaps even something you would normally do with two levels of loops, like iterating on each combination of two names.
<!--
kw: for, foreach, iterate, iteration, consecutive, group, every, multiple, variables, array, arrays, two, unpack, pattern match
-->
606912
606912