Thread Unicode::Collate -> sehr langsam?
(26 answers)
Opened by
bianca
at 2014-12-27 18:42
User since 2009-09-13
7016
Artikel
BenutzerIn
Habe jetzt mal folgende Tests auf Linux mit Perl 5.14.2 gemacht:
- nur mit Encode:
use Encode qw(encode decode);
print encode('iso-8859-15',join(' + ',sort {lc $a cmp lc $b} ('Vertrag',decode('windows-1252','Übel'),decode('windows-1252','Ärger'),decode('windows-1252','Renée'),decode('windows-1252','Öl'),decode('windows-1252','ßig'),'Renee',decode('windows-1252','ärgerlich'))));
QuoteRenee + Renée + Vertrag + ßig + Ärger + ärgerlich + Öl + Übel
- mit Encode und locale:
use locale;
print encode('iso-8859-15',join(' + ',sort {lc $a cmp lc $b} ('Vertrag',decode('windows-1252','Übel'),decode('windows-1252','Ärger'),decode('windows-1252','Renée'),decode('windows-1252','Öl'),decode('windows-1252','ßig'),'Renee',decode('windows-1252','ärgerlich'))));
QuoteRenee + Renée + Vertrag + ßig + Ärger + ärgerlich + Öl + Übel
- mit POSIX und den Werten de_DE.ISO8859-1, de_DE.iso88591 oder de_DE:
use POSIX qw(locale_h);
use locale;
setlocale(LC_CTYPE, "de_DE");
print join(' + ',sort {lc $a cmp lc $b} ('Vertrag','Übel','Ärger','Renée','Öl','ßig','Renee','ärgerlich'));
QuoteRenee + Renée + Vertrag + ßig + Ärger + ärgerlich + Öl + Übel
- mit POSIX und den Werten de, german oder german.iso88591:
use POSIX qw(locale_h);
use locale;
setlocale(LC_CTYPE, "de");
print join(' + ',sort {lc $a cmp lc $b} ('Vertrag','Übel','Ärger','Renée','Öl','ßig','Renee','ärgerlich'));
QuoteRenee + Renée + Vertrag + Ärger + Öl + Übel + ßig + ärgerlich
- nur mit locale:
use locale;
print join(' + ',sort {lc $a cmp lc $b} ('Vertrag','Übel','Ärger','Renée','Öl','ßig','Renee','ärgerlich'));
QuoteRenee + Renée + Vertrag + Ärger + Öl + Übel + ßig + ärgerlich
Was kann ich noch versuchen?
Editiert von bianca: nur mit locale ergänzt
Last edited: 2015-12-29 17:43:20 +0100 (CET)
10 print "Hallo"
20 goto 10
View full thread Unicode::Collate -> sehr langsam?
|