Case Insensitive Sort
使 sort
忽略大小寫的傳統技術是將字串傳遞給 lc
或 uc
進行比較:
@sorted = sort { lc($a) cmp lc($b) } @list;
這適用於所有版本的 Perl 5,對英語來說已經足夠了; 你是否使用 uc
或 lc
並不重要。但是,它對於希臘語或土耳其語這樣的語言存在問題,即大寫和小寫字母之間沒有 1:1 的對應關係,因此根據你是使用 uc
還是 lc
,你會得到不同的結果。因此,Perl 5.16 及更高版本有一個名為 fc
的案例摺疊功能可以避免這個問題,所以現代多語言排序應該使用這個:
@sorted = sort { fc($a) cmp fc($b) } @list;