for (0..(5-1)/2) { # 1..5, step 2
my $i = $_*2 + 1;
...
}
but you're probably better off falling back to a C-style loop in that case.
As an aside, the above trick is particularly useful when dealing with floats.
>perl -le "for (my $i=0; $i<10; $i+=0.1) { print $i }"
...
8.79999999999998
8.89999999999998
8.99999999999998
9.09999999999998
9.19999999999998
9.29999999999998
9.39999999999998
9.49999999999998
9.59999999999998
9.69999999999998
9.79999999999998
9.89999999999998
9.99999999999998
>perl -le "for (0..99) { my $i = $_ / 10; print $i }"
...
8.8
8.9
9
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
9.9
|