Patrick Andrieu: Sort Funktion

Beitrag lesen

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

--

_ - jenseits vom delirium - _
[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
Nichts ist unmöglich? Doch!
Heute schon gegökt?