Set up to not particularly rely on absolute structure of the word. Demonstrate with both the original 'abracadabra' and with a random shuffled instance.
sub mangle ($str is copy) { $str.match(:ex, 'a')».from.map: { $str.substr-rw($_, 1) = 'ABaCD'.comb[$++] }; $str.=subst('b', 'E'); $str.substr-rw($_, 1) = 'F' given $str.match(:ex, 'r')».from[1]; $str } say $_, ' -> ', .&mangle given 'abracadabra'; say $_, ' -> ', .&mangle given 'abracadabra'.comb.pick(*).join;
abracadabra -> AErBcadCbFD caarabadrab -> cABraECdFDb
Last updated 11 months ago