while(@array1 or @array2) { my $i = 0; ONE: while(@array1 and $i < $some_large_number/10) { $i++; my $item = shift @array1; # Do various things (as above) } $i = 0; TWO: while(@array2 and $i < $some_large_number) { $i++; my $item = shift @array2; # Do various things (as above) } }