Guest GastDie Keys enthalten jeweils ein bestimmtes Wort und die zugeordneten Werte eine Zahl, die die Anzahl ihres jeweiligen Wortes in einem Text anzeigen. Es geht also um eine Häufigkeitsliste.
Nun soll die Funktion mir die Keys so sortieren, dass der häufigste als erstes angezeigt wird und der am wenigsten vorkommende als letztes.
Also, dazu würde ich erstmal einen neuen Hash erzeugen, der als Keys die Zahlen der Häufigkeiten enthält und als Wert jeweils ein Array mit den Wörtern, die der jeweiligen Häufigkeit entsprechen.
Das wäre dann ein Hash of Arrays. In Perl ist das für mich etwas schwierig, auf die Schnelle konnt' ich nur mal ein Beispiel in Python formulieren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
h = {"als" : 5,
"wie" : 3,
"Von" : 3,
"zu" : 5,
"von" : 10}
h2 = {}
for i in h.keys():
if not h2.has_key(h[i]):
h2[h[i]] = []
h2[h[i]].append(i)
print h2
Aber es wäre durchaus möglich, das nach Perl zu übersetzen.
Danach kann man diesen Hash nach den Zahlen sortieren und sich dann überlegen, was man mit den Werten in den enthaltenen Arrays anstellt.