/* 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";
}
}
ここで行っているのは、2つのファイルを開き、それらを比較して最初の行にあり、2番目の行にない行を見つけて、古い情報と新しい情報を含む行を出力することです。
しかし、何が起こっているのかというと、2番目のファイルにはないが、最初のファイルにはある行が見つかると、すべての行の印刷が開始されます。私は何を間違っているのですか、そしてもっと簡単な方法があります。