perl -pe 's|(\w)(\w+)(?=\w)|$1.join"",sort{rand 2}split//,$2|ge' 12345678901234567890123456789012345678901234567890123 10 20 30 40 50 Edit: perl -pe 's|\B(\w+)\B|join"",sort{rand 2}split//,$1|ge'