#!/usr/bin/perl
use strict;
use warnings;
print scalar reverse "\noäu";
####
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
binmode STDOUT, ':utf8';
print scalar reverse "\noäu";
__END__
uäo
##
##
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Unicode::Normalize;
use charnames ':full';
my $str = 'Ä';
sub mydump {
print map { '\N['. charnames::viacode(ord $_) . ']' }
split m//, $_[0];
print "\n";
}
mydump $str;
mydump NFKD($str);
mydump scalar reverse NFKD($str);
binmode STDOUT, ':utf8';
my $tmp = "\nÄO";
print scalar reverse NFKD($tmp);
__END__
\N[LATIN CAPITAL LETTER A WITH DIAERESIS]
\N[LATIN CAPITAL LETTER A]\N[COMBINING DIAERESIS]
\N[COMBINING DIAERESIS]\N[LATIN CAPITAL LETTER A]
ÖA
##
##
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Unicode::Normalize;
use charnames ':full';
use String::Multibyte;
my $str = NFKD "ÄO";
sub mydump {
print map { '\N['. charnames::viacode(ord $_) . ']' }
split m//, $_[0];
print "\n";
}
my $u = String::Multibyte->new('Grapheme');
mydump $str;
mydump $u->strrev($str);
binmode STDOUT, ':utf8';
print $u->strrev($str), "\n";
__END__
\N[LATIN CAPITAL LETTER A]\N[COMBINING DIAERESIS]\N[LATIN CAPITAL LETTER O]
\N[LATIN CAPITAL LETTER O]\N[LATIN CAPITAL LETTER A]\N[COMBINING DIAERESIS]
OÄ