Я пытаюсь заставить Perl и программу сортировки (1) GNU/Linux договориться о том, как сортировать строки Unicode. Я выполняю сортировку с LANG=en_US.UTF-8
. В программе Perl я пробовал следующие методы:
-
use Unicode::Collate
с$Collator = Unicode::Collate->new();
-
use Unicode::Collate::Locale
с$Collator = Unicode::Collate->new(locale => $ENV{'LANG'});
-
use locale
Каждый из них потерпел неудачу со следующими ошибками (со стороны Perl):
- Вход не сортируется: [----,] пришел после [($ 1]
- Вход не сортируется: [...] пришел после [&]
- Вход не сортируется: [($ 1] пришел после [1]
Единственный метод, который работал у меня, включал настройку LC_ALL=C
для сортировки и использование 8-битных символов в Perl. Однако, таким образом, строки Unicode не упорядочены должным образом.