my ($string_a, $string_b) = ('ABABA','BB--B-BB'); my @a = split '',$string_a; my @b = split '',$string_b; $string_a = ''; my $a_ndx = 0; for (0..@b-1) { $string_a .= $b[$_] eq '-' ? '-' : $a[$a_ndx++] }