my $str1 = "12345 ABC 987 MNO"; my $str2 = " CDE"; sub merge { my $s2 = $_[1] =~ tr/ /\x{0}/r; return $s2 | $_[0] & ( "\x{ff}" x length $_[0] ^ $s2 =~ tr/\x{00}/\x{FF}/cr ); } print merge( $str1, $str2 ), "\n"; #### 12345 CDE 987 MNO