Hash-Sort klappt nur offline...
_bernd
- perl
0 Sven Rautenberg0 *Markus
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
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
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
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
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
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.
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.