In dem Synopse von Text::CSV
gibt es dieses BeispielText :: Csv-Modul in Perl, das Schreiben von Daten in einem CSV-
my @rows;
my $csv = Text::CSV->new ({ binary => 1 }) # should set binary attribute.
or die "Cannot use CSV: ".Text::CSV->error_diag();
open my $fh, "<:encoding(utf8)", "test.csv" or die "test.csv: $!";
while (my $row = $csv->getline($fh)) {
$row->[2] =~ m/pattern/ or next; # 3rd field should match
push @rows, $row;
}
$csv->eof or $csv->error_diag();
close $fh;
$csv->eol ("\r\n");
open $fh, ">:encoding(utf8)", "new.csv" or die "new.csv: $!";
$csv->print ($fh, $_) for @rows;
close $fh or die "new.csv: $!";
Ich sehe, dass es einige Zeilen auf dem Array schiebt @rows
, und dann die Array Zeile gedruckt wird nach Zeile innerhalb der Ausgabedatei.
Ich muss eine ähnliche Sache machen (wie nach einem Muster suchen und dann die Zeile speichern, um es in eine andere Datei später zu schreiben), aber ich brauche nur ein Feld aus jeder Zeile, und ich muss neue Felder zu $row
hinzufügen das wurde geschoben. Wie würde ich das tun?
Die Synopse verschiedene Anwendungsfallbeispiele enthält. Sie sollten den Rest der Dokumentation lesen. Um Ihre Frage klarer zu machen, bearbeiten Sie bitte die Beispieleingabe und die gewünschte Ausgabe. – simbabque
Dann drücken Sie nur das Feld anstelle der ganzen Zeile wie 'push @rows, $ row -> [2]' und später schieben Sie auch andere neue Felder. –
Brilliant, warum Sie dies nicht als Antwort hinzufügen, damit ich grün markieren kann? – BlueStarry