我正在尝试修复亚美尼亚字母表中的排序,因为所有标准的 Unix 工具和编程语言都对字母和单词进行排序,结果只有 2 种主要方言(西方)中的一种。
将其转换为技术问题是重新排序一个字符“ ւ ”,将其放在字母之间的不同位置,假设将其作为最后一个字符,以便为顺序方言(东部)正确排序单词。从东方方言的语言学上讲,这个“ ւ ”符号不是“独立”书写的,而是用 2 个字符“ ու ”书写的字母的一部分。当前排序将字母“ ու ”放在“ոք”或“ոփ”2 字母结构后面。
基本上,如果你想让例如字母“v”代替拉丁字母中的字母“z”,它应该是完全相似的。
我正在尝试使用类似的东西
#!/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";
但这并不适用于整个单词,只有 2 个字母形式是固定的。
更新:我能够使用tr函数将字母映射到数字来解决这个问题,如Perlmonks中所示