Here's a way to reverse a Unicode string using the regular expression character class \X to match Unicode extended grapheme clusters:
my $edocinU = join '', reverse $Unicode =~ m/\X/g;
Here's a demonstration using Vietnamese (tiếng Việt) words:
#!perl use strict; use warnings; use utf8; binmode STDOUT, ':encoding(UTF-8)'; my $Moonshine = "Rượu đế"; my $enihsnooM = join '', reverse $Moonshine =~ m/\X/g; print "$Moonshine\n"; print "$enihsnooM\n"; __END__ Rượu đế ếđ uợưR LATIN CAPITAL LETTER R LATIN SMALL LETTER U COMBINING HORN LATIN SMALL LETTER O COMBINING HORN COMBINING DOT BELOW LATIN SMALL LETTER U SPACE LATIN SMALL LETTER D WITH STROKE LATIN SMALL LETTER E COMBINING CIRCUMFLEX ACCENT COMBINING ACUTE ACCENT
[I was forced to use <pre> tags instead of <code> tags here to display the actual Vietnamese characters rather than their HTML character entities.]
In reply to Re: How to reverse a (Unicode) string
by Jim
in thread How to reverse a (Unicode) string
by moritz
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |