Beat Strasser: Hash sortieren

Hi there

Moechte einen Hash sortieren. Alle Werte sind numerisch, die Keys sind alfanumerisch. Es soll nach Werten sortiert sein (hoechster Wert zuerst), bei gleichen Werten, nach dem Key.

Ich habe folgendes probiert:

for(sort { $hash{$b} <=> $hash{$a} $a cmp $b } keys %items) {
  print "$items{$_} $_\n";
}

Was ist da falsch?? Oder wie koennte ich das anders loesen?

Danke vielmals!

Gruss,
Beat

  1. hye,

    ich kann dir nur die eine auskunft geben.
    eine %hash sortierst du mit

    sort keys (%hashname);

    wie mann die reihenfolgen ändert o.ä. kann ich dir nicht sagen. aber vielleicht hilft das ja schon :-)

    cu
    BOGUS

  2. Hi Beat(e) ;-)

    Moechte einen Hash sortieren. Alle Werte sind numerisch, die Keys sind alfanumerisch. Es soll nach Werten sortiert sein (hoechster Wert zuerst), bei gleichen Werten, nach dem Key.

    Ich habe folgendes probiert:

    for(sort { $hash{$b} <=> $hash{$a} $a cmp $b } keys %items) {
      print "$items{$_} $_\n";
    }

    Was ist da falsch?? Oder wie koennte ich das anders loesen?

    Sieht ja eigentlich ganz gut aus. Jedoch hast Du da wohl die Hash Namen ein wenig
    durchenander gebracht ... Im sort benutzt Du %hash, die Keys holst Du Dir von %items
    und ausgegeben wird auch %items - also im sort doch einfach auch %items vergleichen ...

    Jörk

    1. Hi Beat(e) ;-)

      k.k. <g>

      for(sort { $hash{$b} <=> $hash{$a} $a cmp $b } keys %items) {
        print "$items{$_} $_\n";
      }
      Was ist da falsch?? Oder wie koennte ich das anders loesen?

      Sieht ja eigentlich ganz gut aus. Jedoch hast Du da wohl die Hash Namen ein wenig
      durchenander gebracht ... Im sort benutzt Du %hash, die Keys holst Du Dir von %items
      und ausgegeben wird auch %items - also im sort doch einfach auch %items vergleichen ...

      Hallo Jörk

      Hey, das wars! Ich hab eben gemeint, $hash sei so ein Standard-Ausdruck wie $a und $b... naja. Jetzt geht alles prima!
      Merci vielmals!

      Gruss,
      Beat

  3. hi!

    Moechte einen Hash sortieren. Alle Werte sind numerisch, die Keys sind alfanumerisch. Es
    soll nach Werten sortiert sein (hoechster Wert zuerst), bei gleichen Werten, nach dem Key.

    <../../sfausles/tsfa_tec.htm#a1>

    bye, Frank!