我正在尝试读取2个文件并尝试在两个文件中打印匹配的模式。 它不起作用。有人能指出我在哪里做错了吗?
#!/usr/bin/perl
open (FILE1, 'Dimension.csv');
my @dim=<FILE1>;
close (FILE1);
open (FILE2, 'SamsClub.dimension_refs.xml');
my @xml=<FILE2>;
close (FILE2);
for(my $i;$i<@dim;$i++){
for(my $j;$j<@xml;$j++){
if($xml[$j] =~ m/$dim[$i]/) {
print "Match found $xml[$j]";
}
}
}
注意:FILE1是csv文件,FILE2是xml文件。
csv示例文件
abc
defe
bald
xml示例文件
<tem name="abc" version="2"/>
答案 0 :(得分:3)
当您将文件读入数组时,它们也包含\n
字符。因此,您的$dim[0]
包含abc\n
,因此不匹配。
有人肯定会发布更优雅的解决方案,但您可以尝试:
my @dim = map { chomp; $_} <FILE1>;
答案 1 :(得分:1)
添加:
chomp @dim;
在循环之前。