请教:如何找出两文件的差别

请教:如何找出两文件的差别

请教:如何找出两文件的差别
现得到两个20M的库文件,各含有2000个左右的记录,其中一个比另一个多出7条记录,其余为相同记录,现在想找出这7个记录。每个记录以//结束。
利用设定条件的办法一直没有得到正确的结果,
能否用pop/push/shift/unshift对文件进行操作?
请高手指点。
20M不算大,先读大的文件, 组成Hash,然后读小的文件,读一个从Hash里删一个,读完了,Hash里剩下的就是多出来的。
pop/push/shift/unshift要看你的记录有没有顺序了。
回复Uliyas
我现在将原始库每条记录的第一行提出来了,分别组成两个150k左右的小文件。想利用楼下《两文件内容匹配问题》提出的办法解决,脚本如下:

#!/usr/bin/perl -w
use strict;
my $s;
open(FILE1,"o://work//test//locus(2276).seq");
open(FILE3,"o://work//test//locus(7).seq");
while(<FILE1>) {
$s=$_;
open(FILE2,"o://work//test//locus(2269).seq");
while(<FILE2>) {
print FILE3 $_ if($_ eq $s);
}
}
exit;

结果进入死循环,提示:Filehandle FILE3 opened only for input at test1.txt line 14, <FILE2> line xxxxxxx
FILE3 句柄是为写创建的吧.
FILE3 句柄是为写创建的吧? 我觉得应该用">"打开
我随便写的,用txt文件做的测试,lz试试能用不。(另,记得打开的文件用完了要关上,哈)

#!/usr/bin/perl -w
use strict;

open (FILE1, "fileA.txt") || die "couldn't open File1 $!\n";
open (FILE2, "fileB.txt") || die "couldn't open File2 $!\n";
open (FILE3, ">result.txt") || die "couldn't open File3 $!\n";

my @f1 = <FILE1>;
while(my $line = <FILE2>){
chomp $line;

my $flag=0;
foreach (@f1) {
$flag = 1 if ($_ eq $line);
}
print FILE3 $line unless $flag;
}

close FILE1;
close FILE2;
close FILE3;

这样可以,谢谢!!
不过要屏蔽掉: chomp $line; [color=red][/color]
这样可以找出7条不同的条目。
但如果不屏蔽的话,两千多条都会记录进result中,而且都首尾相连。
我想是这条语句造成了$flag的值一直是0。