You're absolutely right. :)
I trimmed down my code before posting - without running it - which would've immediately pointed out the problem.
See my post further on down the thread.
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)