SeeksTheMoon
15-02-2006, 18:50
Langsam nerven mich Perl-Hashes...
Ich will einen Hash sortiert ausgeben. In dem Hash stehen (Komma)-Zahlen als Key und Buchstaben als Values, also z.B.
0.03 w
Die Sortierung der Ausgabe soll anhand der keys/Zahlen erfolgen, aber Perl macht da Unsinn, die Ausgabereihenfolge ist z.B. 0.03, 0.27, 0.04, 0.02, 0.32, was offensichtlich chaotisch und nicht sortiert ist.
sub NummernSort {
if($a < $b)
{ return -1; }
elsif($a == $b)
{ return 0; }
else
{ return 1; }
}
[...]
for my $vorschlaege (sort(NummernSort keys(%vorschlagsliste))) {
print "$vorschlagsliste{$vorschlaege} ($vorschlaege), ";
}
Ob ich NummernSort für sort angebe oder nicht, spielt keine Rolle (hab ich von selfhtml), ich hab $a und $b auch mal mit 100 multipliziert um Integer zu bekommen, aber Perl machts einfach nicht....
Ich will einen Hash sortiert ausgeben. In dem Hash stehen (Komma)-Zahlen als Key und Buchstaben als Values, also z.B.
0.03 w
Die Sortierung der Ausgabe soll anhand der keys/Zahlen erfolgen, aber Perl macht da Unsinn, die Ausgabereihenfolge ist z.B. 0.03, 0.27, 0.04, 0.02, 0.32, was offensichtlich chaotisch und nicht sortiert ist.
sub NummernSort {
if($a < $b)
{ return -1; }
elsif($a == $b)
{ return 0; }
else
{ return 1; }
}
[...]
for my $vorschlaege (sort(NummernSort keys(%vorschlagsliste))) {
print "$vorschlagsliste{$vorschlaege} ($vorschlaege), ";
}
Ob ich NummernSort für sort angebe oder nicht, spielt keine Rolle (hab ich von selfhtml), ich hab $a und $b auch mal mit 100 multipliziert um Integer zu bekommen, aber Perl machts einfach nicht....