2013-08-06 13 views
5

Perlは、各文字列の各文字のASCII値を比較して別の文字列と比較するか、別の方法で文字列を比較しますか?Perlはどのようにフード内の文字列を比較しますか?

+1

ロケールと照合について考えると、これは非常に複雑になります。 http://perldoc.perl.org/perlop.html#Equality-Operators "lt"、 "le"、 "ge"、 "gt"および "cmp"は、現在のロケールによって指定された照合(ソート)順序を使用します。従来の使用ロケール(ロケール ':not_characters'は使用しません)が有効です。 perllocaleを参照してください。これらをユニコードと混在させないでください。レガシーバイナリエンコーディングでのみ使用してください。 Unicode :: Collat​​eとUnicode :: Collat​​e :: Localeの標準モジュールは、照合の問題に対してはるかに強力なソリューションを提供します。 – Thilo

+4

@Thiloあなたはそれを答えにすることができますか? – Taymon

答えて

1

Perl does take your current locale into accountこのロケールで定義されているソート順を使用します。これは、文字セット(ASCIIなど)だけでなく、言語も考慮に入れます。たとえば、フランス語ではドイツ語などと比べて単語のソートが異なります。

+0

私は質問者が並べ替えについて話しているのではなく、簡単な$ foo eq $ barを話していると思います。 –

関連する問題