0

我正在尝试读取 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"/>
4

2 回答 2

3

当您将文件读入数组时,它们也包含\n字符。因此,您的$dim[0]包含abc\n因此不匹配。

有人肯定会发布更优雅的解决方案,但您可以尝试:

my @dim = map { chomp; $_} <FILE1>;
于 2013-06-01T07:41:07.667 回答
1

添加:

chomp @dim;

在循环之前。

于 2013-06-01T07:41:24.063 回答