use List::MoreUtils qw( pairwise ); my @a=(1 .. 5 ); my @b=( 'a' .. 'c' ); ### Good point from JavaFan; bad idea to ignore 0 ### my @combined = pairwise { ( $a || '' ) .':'. ( $b || '' ) } @a, @b; ### fixed: my @combined = pairwise { ( defined $a ? $a : '' ) .':'. ( defined $b ? $b : '' ) } @a, @b; { local $,="\n", print @combined; }