##
sub map_split_join {
my $ofs = 0;
join "", map { $ofs += length; $_ . substr $s2, $ofs++, 1 } split /\0/, $s1, -1;
};
####
Rate map_split_join subst map_split
map_split_join 1697/s -- -7% -13%
subst 1828/s 8% -- -6%
map_split 1949/s 15% 7% --