2013-08-06 15 views
5

Perl confronta semplicemente i valori ASCII di ciascun carattere di ogni stringa finché non può posizionarsi uno prima dell'altro o il linguaggio confronta le stringhe in un altro modo?In che modo Perl confronta le stringhe sotto il cofano?

+1

Questo può diventare molto complicato se si pensa alle impostazioni locali e alle regole di confronto. http://perldoc.perl.org/perlop.html#Equality-Operators "lt", "le", "ge", "gt" e "cmp" usano l'ordine di confronto (ordinamento) specificato dalla locale corrente se un è in uso la versione locale di uso legacy (ma non le impostazioni locali ': not_characters'). Vedi perllocale. Non mescolarli con Unicode, solo con codifiche binarie legacy. I moduli standard Unicode :: Collate e Unicode :: Collate :: Locale offrono soluzioni molto più potenti ai problemi di collation. – Thilo

+4

@Thilo Puoi farlo in una risposta? – Taymon

risposta

1

Perl does take your current locale into account e utilizza l'ordinamento definito da questa locale. Questo non solo prende in considerazione i set di caratteri (come ASCII) ma anche le lingue. Ad esempio, le parole sono ordinate in modo diverso in francese che in tedesco, ecc ...

+0

Non penso che l'interrogante stia parlando dell'ordinamento ma di una semplice barra $ eq $ $. –

Problemi correlati