我正在将csv文件与另一个普通文件进行比较,这两个文件都有很多类似的单词(字段),但它不匹配
my $file = "sample.csv";
open my $fh, "<", $file or die "$file: $!";
my $csv1 = Text::CSV->new ({
binary => 1, # Allow special character. Always set this
auto_diag => 1, # Report irregularities immediately
});
my @lines = read_file("brand1.txt");
my $count = 0;
while (my $row = $csv1->getline ($fh)) {
$count = $count + 1;
foreach my $line(@lines) {
my $che = $row->[4];
print $count;
if ($line eq $che){
print $line ."\t". $che;
}
}
}
此代码在终端中为我提供空白输出。
但是比较两个文件(没有csv文件)可以使用相同的脚本
答案 0 :(得分:0)
在试图弄清楚为什么两件事情不平等时,最好的办法就是打印这两件事。
print "<<<$line>>>\n>>>$che<<<\n";
这将在视觉上向您展示差异是什么,大部分时间都会使其显而易见。
在您的情况下,问题是read_file
没有chomp
输入,因此@lines
中的每一行最后都有一个\n
。但是,您解析的CSV不会。
如果你这样做:
chomp @lines;
它应该可以正常工作。