# lade das Modul (siehe oben) use Text::CSV_XS; # Deklaration des Skalars $file und Initialisierung mit # dem Pfad zu der CSV-Datei my $file = '/pfad/zur/Datei.csv'; # Deklaration des Arrays @entries my @entries; # erzeugen des Text::CSV_XS-Objekts, mit der Eigenschaft # ';' als Separator my $parser = Text::CSV_XS->new({sep_char => ';'}); # oeffnen der CSV-Datei, bei Fehler, Fehlermeldung ausgeben # und Programm beenden. In $fh ist der Filehandle, was in # vielen Programmen einem DATA oder FH , ... entspricht open(my $fh,"<$file") or die $!; #Solange das Ende der Datei nicht erreicht wurde while(my $line = <$fh>){ # Wenn das Parsen der Zeile erfolgreich war (Aufruf der # Methode parse() des Objekts). Der -> entspricht hier # dem . bei Java if($parser->parse($line)){ # speichere die geparsten Felder in @fields (Aufruf der # Methode fields() aus Text::CSV_XS my @fields = $parser->fields(); # fuege eine Arrayreferenz mit der kompletten Zeile und # dem letzten Feld als Inhalt an das Ende des @entries- # Arrays ein push(@entries,[$line,$fields[-1]]); } } close $fh; # sortiere nach dem letzten Feld (sort-Teil) und gebe immer die komplette # Zeile zurueck (map-Teil) my @sorted = map{$_->[0]}sort{$a->[1] <=> $b->[1]}@entries; #Ausgabe print $_,"\n" for(@sorted);