$str1 = "12345 ABC 987 MNO"; $str2 = " CDE"; #### $str = "12345 CDE 987 MNO"; #### my @arr1 = split //, $str1; my @arr2 = split //, $str2; foreach (my $i=0;$i<@arr1;$i++) { if ($arr2[$i]) { # we do have something in the second string if (($arr1[$i] ne " ") and ($arr2[$i] eq " ")) { $arr2[$i] = $arr1[$i]; } } else { #$str2 is empty now, so copy all $arr2[$i] = $arr1[$i]; } } print join "",@arr2,"\n";