/* format of the files:123|0|15454215|desc|11/30/2012|N|Y|
open FILE1, "/home/1.txt" or die $!;
open FILE2, "/home/2.txt" or die $!;
while (<FILE2>) {
@old_item = split(/\|/);
if (<FILE1> !~ /$old_item[0]\|$old_item[1]\|$old_item[2]/) {
print "$old_item[0]|$old_item[1]|$old_item[2]|$old_item[3]|$old_item[4]|$old_item[5]|$old_item[6]|DE|\n";
}
}
我在这里做的是打开两个文件,然后比较它们以找到第一个而不是第二个的任何行,然后输出包含一些新旧信息的行。
但是发生的事情是,一旦它找到不在第二个文件中但在第一个文件中的行,它就会开始打印每一行。我做错了什么,有没有更简单的方法。