Thread CSV Vergleich
(21 answers)
Opened by gnude at 2011-10-25 13:18
Kleiner Tipp: Wenn Du nur mit einem Array(Zeile)-Index arbeitest, geht die Übersicht schnell flöten. Verwende Spaltennamen. Rufe dazu an jeder Zeile eine Callbackfunktion mit der Array-Referenz $row
while-Schleife wie gehabt, in jeder Zeile Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 while( my $row = $csv->getline ){ &cb($row) } # Die Callbackfunktion macht die Zuordnung index => name sub cb{ my $r = shift; my $id = $r->[0]; # Beispiel ID auf index [0] $DATA->{$id}{name} = $r->[1]; $DATA->{$id}{vname} = $r->[2]; $DATA->{$id}{plz} = $r->[3]; # usw. } $DATA kann ein globaler Hash sein, oder auch eine Objekteigenschaft (Objekt wird übergeben). Die Fehlerbehandlung in Text::CSV ist etwas kniffelig, siehe Dokumentation. Verwende in der Schleife NIE den eigenen Dateihandler, sondern stets die Methoden des Moduls, zb. $csv->eof um das Ende der Datei abzufragen. |