通过删除PERL中的某些列,从另一个CSV文件创建CSV文件

时间:2014-01-04 08:42:01

标签: perl csv

您好我正在尝试阅读csv文件说first.csv并在其中选择一些列并将这些列写入新的csv文件new.csv。 这是我的代码: -

 my $csv = Text::CSV->new();

    open (my $fh , "first.csv") or die "cannot open $file\n";
    open (my $mh , "new.csv") or die "cannot open file $!\n";
    while (my $row = $csv->getline($fh)){

      my $id = $row->[0]; 
      my $words = $row->[2];
      my $bits = $row->[3];

    }
    close $fh;

在此之后,我不知道如何只将这些$id,$words,$bits写入new.csv。 任何人都可以帮我做。

2 个答案:

答案 0 :(得分:2)

你不能这样做:(未经测试)

$csv->print($mh, [$id, $words, $bits]);

来自Text::CSV文档:

$status = $csv->print ($io, $colref); # Write an array of fields
                                      # immediately to a file $io

答案 1 :(得分:1)

perl -MText::CSV -e'my $csv = Text::CSV->new();while(my $row = $csv->getline(ARGV)){$csv->print(STDOUT, [@$row[0,2,3]])}' first.csv > new.csv