Perl: Hash sortieren nach Werten
Ein Hash mit Hash enthält in einer "Spalte" einen Wert nach dem diese als Liste sortiert werden soll.
my %hash = ();
$hash{'hans'}->{points} = 5;
$hash{'hans'}->{foo} = 'fii';
$hash{'boo'}->{points} = 10;
$hash{'boo'}->{foo} = 'fiii';
$hash{'foo'}->{points} = 1;
$hash{'foo'}->{foo} = 'fi';
foreach my $key (sort { $hash{$a}->{points} <=> $hash{$b}->{hash} } keys %hash) {
print $hash{$key}->{points} ;
}
$hash{'hans'}->{points} = 5;
$hash{'hans'}->{foo} = 'fii';
$hash{'boo'}->{points} = 10;
$hash{'boo'}->{foo} = 'fiii';
$hash{'foo'}->{points} = 1;
$hash{'foo'}->{foo} = 'fi';
foreach my $key (sort { $hash{$a}->{points} <=> $hash{$b}->{hash} } keys %hash) {
print $hash{$key}->{points} ;
}
Hash nach länge der Strings sortieren
my @sort_by_length = sort { length($a) <=> length($b) } keys %var;
- Stefan Rieger's blog
- Anmelden um Kommentare zu schreiben