sub parallel_it { my @arr_refs = @_; my $iter = 0; return sub { if (not grep $iter < @$_, @arr_refs) { $iter = 0; return; } my @return = map { $_->[$iter] } @arr_refs; $iter++; return @return; }; }