User since
2005-12-08
3
Artikel
BenutzerIn
Hallo zusammen,
ich habe eine Klasse Tabelle geschrieben, die durch einen Hash repräsentiert wird, der unter anderem eine Referenz auf ein Array enthält, in welchem Team-Objektinstanzen gespeichert sind. Tabellen-Objektinstanzen repräsentieren also bspw. eine Fußball-Bundesliga-Tabelle. Ich möchte dieTeams der Tabelle nun nach bestimmten Kriterien (z.B. Punkte) sortieren.
$table = {
"name" => "Bundesliga",
"teams" => [
{
"name" => "Bayern München",
"Punkte" => 5
},
{
"name" => "Borussia Dortmund",
"Punkte" => 10
}
]
}
Wie kann ich das mit der Perl-Routine sort hinbekommen, das ich festlegen kann, das nach Punkten oder Namen sortiert wird? Folgender Code funktioniert erwartungsgemäß nicht:
sort { $a <=> $b } @$table{"teams"};
Vielen Dank schonmal!
Tim
User since
2003-08-04
7321
Artikel
ModeratorIn
ja, du musst ja dann auch nach punkten sortieren
my @sorted_teams = sort { $a->{Punkte} <=> $b->{Punkte} } @$table{"teams"};
btw. sieht mir das ganze nicht wirklich nach echten objekten aus, sondern eher nach normalen hash-refs :)
User since
2005-12-08
3
Artikel
BenutzerIn
Ja, du hast recht. Das habe ich aber nur der Einfachheit halber so aufgeschrieben.
Vielen Dank für die Hilfe!!!
User since
2003-08-04
7321
Artikel
ModeratorIn
mit
Data::Dumper kannst du komplexe datenstrukturen lesbar anzeigen!