in reply to Parallelization of multiple nested loops

You shouldn't use non-integral step amounts, as you accumulate floating-point error each pass through the loop.

For example,

$ perl -E'for (my $i=0; $i<10; $i+=1) { say $i }' | wc -l 10 $ perl -E'for (my $i=0; $i<1; $i+=0.1) { say $i }' | wc -l 11

Replace

for ($p[0]=0; $p[0]<=1; $p[0]+=0.2){

with

for (0..5) { $p[0] = $_*0.2;

or with

my @ps = map { $_ * 0.2 } 0..5; for (@ps) { $p[0] = $_;

The second approach allows us to do the following:

use Algorithm::Loops qw( NestedLoops ); my @ps = map { $_ * 0.2 } 0..5; my $iter = NestedLoops([ (\@ps) x 11 ]); while (my @p = $iter->()) { my $temp_out = join("\t", @p, 1, 1)."\n"; ... }