utf-8を使用してエンコードされた単語のリストをソートする次のPerlスクリプトがあります。
use HTML::Entities;
use Unicode::Collate::Locale;
use utf8;
my @array = (
"Another",
"An Other",
"Anóther",
"An Óther",
"Anòther",
"An Òther",
"Anôther",
"An Ôther",
"Anöther",
"An Öther",
"Anõther",
"An Õther"
);
my $lang = "da";
printf ("Lang code is: %s\n", $lang);
my $coll = Unicode::Collate::Locale->new(locale => "$lang");
my @result = $coll->sort(@array);
foreach my $item (@result){
print $item, "\n";
}
出力されるものは次のとおりです。
Lang code is: da
An Other
Another
An Óther
Anóther
An Òther
Anòther
An Ôther
Anôther
An Õther
Anõther
An Öther
Anöther
ただし、次のように出力したいと思います。
An Other
An Óther
An Òther
An Ôther
An Õther
An Öther
Another
Anóther
Anòther
Anôther
Anõther
Anöther
理論的根拠は、スペース文字を他の文字の前に並べ替えたいということです。Collator オブジェクトを取得してそれを支援する方法はありますか?