_bernd: Hash-Sort klappt nur offline...

Hallo erstmal,
ich habe hier eine kleine Tabelle, die gern numerisch sortiert hätte. Die empfohlene Vorgehensweise laut Perl-FAQ klappt offline/lokal unter XP und ActiveState-Distro auch problemlos:

my %tabelle;
my @output=sort {$tabelle{$b} <=> $tabelle{$a}} keys %tabelle;

Leider lässt das den Apatschen meines Hosters reichlich kalt- der sortiert einfach mal gar nicht auf diese Weise. Hätte zufällig jemand einen Tipp, wie ich ihn noch dazu motivieren könnte?

Grüße
_bernd

  1. Moin!

    Leider lässt das den Apatschen meines Hosters reichlich kalt- der sortiert einfach mal gar nicht auf diese Weise.

    "Funktioniert nicht" funktioniert nicht. Fehlerbeschreibung bitte.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Grüezi,
      leider ist der Fehler IMHO nicht besser zu beschreiben, weils ansonsten keine (Error-)Meldung gibt. Der Hash wird ausgegeben- allerdings unsortiert.
      Falls es besser vorstellbar werden sollte- es handelt sich dabei um eine Dateiliste, die nach der Änderungszeit sortiert werden soll. Tabelle/Hash konstruiere ich so:

      foreach (@files)
      {
       @daten=stat($_);
       $tabelle{$_}=$daten[9];
      }
      Das klappt wie gesagt- Hash ist vorhanden, wird auch abgearbeitet, aber aus irgendwelchen Gründen nicht sortiert (was interessanter Weise bei gleicher Syntax auf der Kommandozeile von Windows aber funktioniert).

      Grüße
      _bernd

      1. Moin!

        leider ist der Fehler IMHO nicht besser zu beschreiben, weils ansonsten keine (Error-)Meldung gibt.

        Du könntest doch aber problemlos mal den Inhalt deiner Variablen und deren Typ dumpen lassen - vor und nach dem Sortieren, und auf beiden Systemen. Denn anscheinend hat es was mit dem Variableninhalt zu tun.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!
        1. Tjä-
          ihr hattet wohl recht: Für den Apatschen ist die Zeitangabe anscheinend ein String- musste ich also mal wieder hintenrum konstruieren (was allerdings Geeier mit dem häßlichen Hash erspart ;-)

          Grüße
          _bernd

          1. ihr hattet wohl recht: Für den Apatschen ist die Zeitangabe anscheinend ein String- musste ich also mal wieder hintenrum konstruieren (was allerdings Geeier mit dem häßlichen Hash erspart ;-)

            Der Server hat damit nichts zu tun. Und was ist an Hashes häßlich?
            Schneller und einfacher kannst du solche Sachen nicht programmieren.

            Struppi.

            --
            Javascript ist toll (Perl auch!)
  2. Hallo,

    my %tabelle;
    my @output=sort {$tabelle{$b} <=> $tabelle{$a}} keys %tabelle;
    Leider lässt das den Apatschen meines Hosters reichlich kalt- der sortiert einfach mal gar nicht auf diese Weise.

    Bist du auch absolut sicher, dass es sich bei deinen Schlüsseln um Zahlen handelt und nicht um Strings?

    Markus.

    --
    http://www.apostrophitis.at
    Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant vieleicht Strucktur