for (...) { ... push(@forkArray, $level); push(@forkArray, $writeCounter); push(@forkArray, $nextMerge); } for (my $ct = 0; $ct <= $#forkArray; $ct+=3) { my $level = $forkArray[$ct+0]; my $mergeLast = $forkArray[$ct+1]; my $mergeFirst = $forkArray[$ct+2]; ... } #### for (...) { ... push @forkArray, [ $level, $writeCounter, $nextMerge ]; } foreach (@forkArray) { my ($level, $mergeLast, $mergeFirst) = $@_; ... }