Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSV文件中的行数与while循环中的迭代数不同。Perl_Perl_Csv_While Loop_Iteration - Fatal编程技术网

CSV文件中的行数与while循环中的迭代数不同。Perl

CSV文件中的行数与while循环中的迭代数不同。Perl,perl,csv,while-loop,iteration,Perl,Csv,While Loop,Iteration,我有一点怀疑: 我有一个CSV文件,有71162行文本 为了处理每一行,我应用了简单的Perl代码: while (my $line = <FILE>) { chomp $line; #some code $count++; } print $count; while(我的$line=){ chomp$行; #一些代码 $count++; } 打印$count; 循环后,$计数等于71158。 7条线路丢失了怎么办?如何检测我错过了哪些线路 thx

我有一点怀疑: 我有一个CSV文件,有71162行文本

为了处理每一行,我应用了简单的Perl代码:

while (my $line = <FILE>) {
    chomp $line;
        #some code
    $count++;
}
print $count;
while(我的$line=){
chomp$行;
#一些代码
$count++;
}
打印$count;
循环后,$计数等于71158。 7条线路丢失了怎么办?如何检测我错过了哪些线路


thx所以我想答案是:


什么使您认为perl的计数错误?为什么不是Gedit?是否尝试了其他编辑器,或
wc-l文件

答案是:Perl是对的!格迪特错了


Perl将始终准确地告诉您告诉它要告诉您的内容

也许在“某些代码”部分的某个地方,您正在执行“下一步”并在递增计数器之前迭代到下一行?此外,您可能更改了记录分隔符变量。是的,我已将$count初始化为0。我在Gedit中打开了一个文件,我向下滚动并检查了最后一行的编号。Gedit中的“换行文本”选项已禁用。“某些代码”没有任何可疑代码。为了测试代码,我只放了“print NEWFILE”$行;“而不是“一些代码”,以获得相同的输入文件。迭代次数仍然是71158,但文件中的行数是71165。分隔符不变,它是一个分号。是什么让您认为perl的计数错误?为什么不使用Gedit?尝试了另一个编辑器,甚至是
wc-l file
?@TLP是正确的!!Gedit显示的行太多。”wc-l file“命令和Libre Office显示正确的行数。我不知道Gedit会欺骗我!!谢谢各位