diab: Hashes nach assoziierten Werten sortieren

Hallo,
der folgende Ausschnitt stammt aus dem O'Reilly Perl Kochbuch:

foreach $food (sort { $food_color{$a} cmp $food_color{$b} }
                keys %food_color)
{
    print "$food is $food_color{$food}.\n";
}

Meine Frage dazu: Kann man das auch so gestalten, dass die Sortierung nicht nach Alphabet sondern nach Wert erfolgt (Die assoziierten Werte sind integer-Zahlenwerte).

Vielen Dank!

_________
 /----diab \ /         M.\

  1. Hallo,

    der folgende Ausschnitt stammt aus dem O'Reilly Perl Kochbuch:

    foreach $food (sort { $food_color{$a} cmp $food_color{$b} }
                    keys %food_color)
    {
        print "$food is $food_color{$food}.\n";
    }

    Meine Frage dazu: Kann man das auch so gestalten, dass die Sortierung nicht nach Alphabet sondern nach Wert erfolgt (Die assoziierten Werte sind integer-Zahlenwerte).

    Ich frage mich gerade, warum DU dann nicht den Verweisen des Buches folgst. Dann wärst DU nämlich zu Resept 4.15 gekommen (da das Sortieren der Schlüssel eines Hashes ja eigentlich das Sortieren einer Liste ist) und dann hättest Du auch mit etwas Glück (oder Neugier) auch Resept 4.14 gefunden, in dem beschrieben wird, wie man eine Liste numerisch sortiert.

    http://www.perldoc.com/perl5.6/pod/perlop.html#Equality-Operators und http://www.perldoc.com/perl5.6/pod/func/sort.html wären auch eine recht hilfreiche Lektüre.

    Grüße
      Klaus

  2. hi,

    Meine Frage dazu: Kann man das auch so gestalten, dass die Sortierung nicht nach Alphabet sondern nach Wert erfolgt (Die assoziierten Werte sind integer-Zahlenwerte).

    anstelle cmp nimm <=> als Vergleichsoperator.

    mehr zum Sortieren
    http://i-netlab.de/cgi-bin/index.cgi?vi=Sortieren_mit_PERL

    oder Buch weiterlesen ;-)

    Viele Grüße, Rolf

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?