perl脚本从csv文件中检索一些行信息

时间:2014-02-26 09:10:01

标签: perl csv

我有一个包含10列的CSV文件。第8列将有0和1。我的脚本应检查第8列是否为1.如果第8列中存在1,则应打印其对应的第2列和第10列。我试过这个,但没有正常工作。

open PROJ3, "> proj3.h " or die $!;
open (CSV_XS, "<",$file ) or die $!;
while (<CSV_XS>) {
    if ($csv->parse($_)) {
        my @columns = $csv->fields();
        if($ARGV[1] eq "USPC") {
            if($columns[8]==1) {//checking is done here
                print PROJ ("ICU_VECTOR_INFO($columns[2] $columns[10])\n");
            }
        }
    } else {
        my $err = $csv->error_input;
        print "Failed to parse line: $err";
    }

}

2 个答案:

答案 0 :(得分:1)

添加

use Text::CSV;
my $csv = Text::CSV->new({ sep_char => ',' });

到顶部来声明你的解析器。如果您的系统无法使用此软件包,请尝试使用reg-exp替换$ csv-&gt; parse。

答案 1 :(得分:0)

当你说有10列时,你的意思是10作为数字或索引?如果您的意思是数字,则应更正已选中字段的索引:$columns[7]而不是$columns[8]