2013-08-06 21 views
5

Có phải Perl chỉ so sánh các giá trị ASCII của từng ký tự của mỗi chuỗi cho đến khi nó có thể đặt một ký tự trước chuỗi kia hoặc ngôn ngữ có so sánh các chuỗi theo cách khác không?Làm thế nào để so sánh chuỗi Perl dưới mui xe?

+1

Điều này có thể rất phức tạp nếu bạn nghĩ về miền địa phương và đối chiếu. http://perldoc.perl.org/perlop.html#Equality-Operators "lt", "le", "ge", "gt" và "cmp" sử dụng thứ tự đối chiếu (sắp xếp) được chỉ định bởi ngôn ngữ hiện tại nếu miền địa phương sử dụng kế thừa (nhưng không sử dụng ngôn ngữ ': not_characters') có hiệu lực. Xem perllocale. Không trộn chúng với Unicode, chỉ với mã hóa nhị phân kế thừa. Các tiêu chuẩn Unicode :: Collate và Unicode :: Collate :: Locale modules cung cấp nhiều giải pháp mạnh mẽ hơn cho các vấn đề đối chiếu. – Thilo

+4

@Thilo Bạn có thể biến điều đó thành câu trả lời không? – Taymon

Trả lời

1

Perl does take your current locale into account và sử dụng thứ tự sắp xếp được xác định bởi ngôn ngữ này. Điều này không chỉ lấy các bộ ký tự (chẳng hạn như ASCII) mà còn cả các ngôn ngữ. Ví dụ các từ được sắp xếp khác nhau bằng tiếng Pháp so với tiếng Đức, vv…

+0

Tôi không nghĩ rằng người hỏi đang nói về việc phân loại nhưng đơn giản là $ foo eq $ bar. –

Các vấn đề liên quan