#!/usr/bin/env perl use 5.014; # use utf8; use utf8::all; use strict; use warnings; use warnings FATAL => 'utf8'; use autodie; # use open qw[ :utf8 :std ]; use Unicode::Collate::Locale; my @nfd = qw[ côté cote côte coté ]; my @nfc = qw[ côté cote côte coté ]; my @locales = qw[ fr_FR fr_CA fr_BE fr_CH ]; my @norms = ( [ NFC => \@nfc ], [ NFD => \@nfd ], ); for my $locale ( @locales ) { my $coll = Unicode::Collate::Locale->new(locale => $locale); say sprintf "Locale: $locale; getlocale: %s", $coll->getlocale; for my $norm ( @norms ) { my($name, $words) = @$norm; say "Normalization: $name"; my @sorted = $coll->sort(@$words); say "Sorted: @sorted"; } }