So bringst du den Inhalt der CSV Datei schonmal in eine
ungünstige Ausgangs-Reihenfolge zum Sortieren.Angenommen deine CSV-DATEI sieht so aus:
erste spalte,zweite spalte,dritte spalte
aaa,bbb,ccc
ccc,aaa,bbb
bbb,ccc,aaa
Lies die CSV-Datei so ein dass die Daten hinterher in dieser
Form vorliegen :
@array = (
["erste spalte", "zweite spalte", "dritte spalte"],
["aaa","bbb","ccc"],
["ccc","aaa","bbb"],
["bbb","ccc","aaa"]
);
Jetzt kannst du die Kopfzeile entfernen und nach einer bestimmten
Spalte sortieren, zum Beispiel alphabetisch nach der ersten (0) :
foreach( sort {$a->[0] cmp $b->[0]} @array) {
print join " ", @{$_},"\n";
}
$a und $b sind in der sort-Funktion Aliase für die zu vergleichenden Elemente,
Also kannst du auf sie zugreifen, wie du auf die Elemente in deinem Array
zugreifen würdest.So wie du das von $_ kennst.
Siehe:
http://perldoc.perl.org/functions/sort.html
Datum: 06.03.2006-23:55
