in reply to Printing from three arrays
You want to loop over the array index, you need to enumerate from 0 to the array length minus 1, which is that "$#". The initialization (my $i = $j = $k = 0;) is not required because you already use the "my" in each loop.
A more C stylish approach (not necessarily better):
#!/usr/bin/env perl use strict; use warnings; my @array1 = (1, 2, 3); #veryfast my @array2 = (qw/a b c/); # Enough to test #veryslow my @array3 = (qw/I II III/); # my $i = $j = $k = 0; for(my $i=0;$i<=$#array2;$i++) { for(my $j=0;$j<=$#array3;$j++) { for(my $k=0;$k<=$#array1;$k++) { print "$array1[$k],$array2[$i],$array3[$j],\n"; } } }
Note that because in each iteration it needs to calculate $# these loops are slower than iterating over the values of each array, as already shown by other monks.
|
---|