Hallo Silvio,
Was mich noch wundert: ich befülle den Hash durch eine sortierte Eingabe, in dem ich aus einer Datenbank Werte sortiert auslese. Leider ist der Hash dann nicht mehr sortiert...
Die Reihenfolge der Keys in einem Hash ist undefiniert. Technisch ist eine Hashtable eine Tabelle, bei dem der Index des Elements aus dem Schlüssel berechnet wird. Ein vereinfachtes Beispiel: der Key a
könnte z.B. den Index 1 ergeben, der Key b
z.B. den Index 2. Fügst du jetzt zuerst einen Wert mit dem Key b
ein, wird er an die Zelle 2 in der Tabelle eingefügt, auch wenn er als erstes hinzugefügt wurde.
wie kann ich die Schlüssel-Werte-Paare eines Hash ausgeben? Aber sortiert nach den Werten. Die Werte sind Strings.
Du loopst über die sortierte Liste der Keys:
foreach my $key (sort { $hash{$a} cmp $hash{$b} } keys %hash) {
printf "%s: %s\n", $key, $hash{$key};
}
LG,
CK