Sort Funktion
Christian
- perl
Frage an die Experten:
Giebt es eine Möglichkeit die Sortierreihenfolge des Befehls sort zu ändern?
Standard ist ja ABCDEF...abcdef....
Möchte es abändern in z.b. nach AaBbCcDd usw.
Kennt da jemand einen Trick?
Hallo Christian!
Giebt es eine Möglichkeit die Sortierreihenfolge des Befehls sort zu ändern?
Ja.
Standard ist ja ABCDEF...abcdef....
Oder ASCII-betisch genannt..., was bei Zahlen zu:
my @nums = (1,2,3,10,11);
$, = $/;
print sort @nums;
1
10
11
2
3
führt.
Möchte es abändern in z.b. nach AaBbCcDd usw.
Kennt da jemand einen Trick?
Ist Dir der Raumschiffoperator (<=>) ein Begriff? Der bewirkt bei Zahlen eine numerische Sortierung:
my @nums = sort{$a <=> $b}(1,2,3,10,11);
$, = "\n";
print @nums;
1
2
3
10
11
Und sein Pendant für Strings heißt cmp (compare).
my @girlfriendsASCII = sort ("Anna", "Abigail", "Arabella", "anastasia");
$, = "\n";
print @girlfriendsASCII;
Abigail
Anna
Arabella
anastasia
my @girlfriendsAlph = sort{"\L$a" cmp "\L$b"} ("Anna", "Abigail", "Arabella", "anastasia");
$, = "\n";
print @girlfriendsAlph;
Abigail
anastasia
Anna
Arabella
\L vor $a und $b verwandelt die Großbuschstaben für das Sortieren in kleinen.
Viele Grüße aus Frankfurt/Main,
Patrick
Moin Moin!
Kennt da jemand einen Trick?
Ja: Dokumentation lesen.
Alexander