Hallo, Ihr wertvollen Helfer, am Pfingstsonntag,
Danke schön für die vielen Tips, die ich fast alle ausprobiert habe.
Rolf's Variante funktioniert prima, aber nur für einzelne Zeichen, d.h. wenn man die zu sortierende Liste in
@dirty_list = qw(APÓ ÓPA PAA ÁBB BCP CÖD ÖÖÖ DDD ÕPB E É B O Ö F G H I Í A A A);
umwandelt, klappt es nicht mehr. Nur die hinteren Characters werden sortiert.
Klaus' Vorschlag ist sehr elegant, funktioniert auch, ist aber ziemlich langsam. Zudem hatte er meinen Speicher zugemacht.
Alex' Version habe ich erst gerade gelesen, nachdem ich mich in den frühen Morgenstunden für ein Modul entschieden hatte, das ich unter CPAN fand.
Die Adresse lautet: http://search.cpan.org/search?dist=Sort-ArbBiLex
Es läuft auf meiner lokalen Maschine unter NT sehr gut.
Prinzip:
use Sort::ArbBiLex ( 'fulani_sort',
[
[ "a", "A" ],
[ "c", "C" ],
[ "ch", "Ch", "CH" ],
[ "ch'", "Ch'", "CH'" ],
[ "e", "E" ],
[ "l", "L" ],
[ "lh", "Lh", "LH" ],
[ "n", "N" ],
[ "r", "R" ],
[ "s", "S" ],
[ "u", "U" ],
[ "z", "Z" ],
]
);
Es müssen also alle zu sortierenden Zeichen angegeben werden. Zeichenverbindungen, wie im Ungarischen üblich (Cs, Gy, Ly, Ny usw.), können auch als Sortierkriterium herangezogen werden, lassen die Performance aber etwas schlechter werden. Das Modul hilft aber gut wirtschaften.
Nochmals recht herzlichen Dank an Euch, und weiterhin ein schönes Pfingstfest. :)
André