我有一个包含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";
}
}
答案 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]
。