J'essaie de corriger le tri en alphabet arménien, car tous les outils et langages de programmation Unix standard trient les lettres et les mots pour un seul des deux principaux dialectes (occidentaux).tri alphabétique trier en Perl
Traduire cela en problème technique consiste à réorganiser l'un des caractères « ւ », de le mettre dans un endroit différent entre les lettres, disons pour en faire le dernier caractère de sorte que les mots sont commandés correctement pour l'ordre dialecte (oriental). Linguistiquement parlant en dialecte oriental, ce symbole "ւ" n'est pas écrit "standalone" mais fait partie d'une lettre écrite avec 2 caractères "" ". Le tri actuel met la lettre "" "derrière" ոք "ou" ոփ "les constructions de 2 lettres.
Fondamentalement, il devrait être totalement similaire si vous vouliez faire e. g. la lettre "v" est à la place de la lettre "z" en alphabet latin.
Je suis en train d'utiliser quelque chose comme
#!/usr/bin/perl -w
use strict;
my (@sortd, @unsortd, $char_u, $char_x);
#@unsortd = qw(աբասի ապուշ ապրուստ թուր թովիչ թոշակ թոք);
@unsortd = qw(ու ոց ոք ոփ);
@sortd = sort {
$char_u = "ւ";
$char_x = split(//, @unsortd);
if ($char_u gt $char_x) {
1;
} else {
return $a cmp $b;
}
} @unsortd;
print "@sortd\n";
mais cela n'échelle pas des mots entiers, à seulement 2 formes de lettre sont fixés.
MISE À JOUR: J'ai pu résoudre ce en utilisant la fonction tr pour mapper des lettres aux chiffres comme indiqué dans Perlmonks
Vous ne devez jamais trier du texte en utilisant des comparaisons de points de code; ça ne va jamais avoir raison. C'est pourquoi 'Unicode :: Collate' et' Unicode :: Collate' existent. – tchrist
Ajoutez ':: Locale' au 2ème. – tchrist