use List::MoreUtils qw(zip); my @arrOfJoiners = ('!','*','?'); my @arrToJoin = (1,2,3,4); push @arrOfJoiners, ('') x ( @arrToJoin - @arrOfJoiners ); my $string = join '', zip @arrToJoin, @arrOfJoiners; print "$string\n";