【发布时间】:2014-02-10 20:58:05
【问题描述】:
我正在使用 Perl 脚本读取 CSV 文件,我有一个 CSV 文件,其中第一列中有数据包,前面有标签号
例子:
Packet0,tag1,tag2,tag3
packet1,tag1,tag2,tag3,tag4
packet2,tag1
我已经制作了这个脚本:
my @parts = ();
my @tag = ();
my $j=0;
open CSVFILE, 'data.csv';
while (my $row = <CSVFILE>) {
chomp;
my @line = split(/\s?,\s?/, $row);
push @packet, $line[0];
for (my $i = 1; $i <= $#line; $i++) {
$tag[$i][$j] = $line[$i];
}
j++;
}
但是这段代码对我不起作用,谁能帮我解决我哪里出错了?
【问题讨论】:
-
您的期望是什么,应该怎么做?
-
它应该给我两个数组,@packets,它将包含数据包名称和
@tag,它将包含标签号,我使用了二维数组,以便我可以存储各自的标签号的数据包。tag[packet0][tag1] = tag[0][0] & tag[packet1][tag1] = tag[1][0] -
您指的是一个数组
@csv_line,它没有声明或分配给代码中的任何位置。此外,您不会增加$j。还有更多:chomp不会影响你的循环变量$row,它会影响$_。 -
谢谢,刚刚更正,但阅读方式仍然不正确
-
你怎么知道的?您没有打印任何内容或保存数据。
标签: perl