in reply to iterating 2 arrays in parallel

The MapCar family in Algorithm::Loops does this. The different MapCar subs handle arrays of mismatched length differently.
use Algorithm::Loops qw( MapCar ); my @array1 = qw( one two three ); my @array2 = ( 1, 2, 3 ); my @combined = MapCar { join ':', @_ } \@array1, \@array2;