Christian: Sort Funktion

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?

  1. 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?
  2. Moin Moin!

    Kennt da jemand einen Trick?

    Ja: Dokumentation lesen.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".