Urgh!!!
#!perl -l sub t{my ($p,$i)=@_;my$f=substr$p,0,1,''or return;my($j,$k)=$i=~/(.*)$f(.*)/;$n=$j=~y///c;my($q,$r)=$p=~/(.{$n})(.*)/;t($q,$j).t($r,$k).$f}print t(@ARGV)