in reply to faster way for multiple foreach loops

Others have suggested moving the foreach(1..3) to the outside, which probably would help a little, although it might not be possible given the details of what your code is actually doing in the "further code" section.

If your real application is always going to have exactly 9 elements in @list1, a different approach to optimization might be to unroll the loop like this:

my ($a,$b,$c,$d,$e,$f,$g,$h,$i) = @list1; $var1 = $num1 + $a; $var2 = $num2 + $b; $var3 = $c; #... $var1 = $num1 + $d; $var2 = $num2 + $e; $var3 = $f; #... #etc

But what in the world is the "further code" section doing that takes less time than the loop overhead?? I'm having a hard time imagining that.