open A, "A.txt" or die "Can't open A";
my @data = ;
close A;
my %hash;
++$hash{$_} foreach @data;
open B, "B.txt" or die "Can't open B";
open C, ">A无B有.txt" or die "Can't open Output A无B有";# 请改成英文档名
while ( ) {
if ( $hash{$_} ) { delete $hash{$_}; next } ; # AB 都有, 拿掉
print C $_; # A无B有
delete $hash{$_} ; # 最後剩下来的就是 A 有 B 无
}
close C; close B;
open D, ">A有B无.txt" or die "Can't open Output A有B无"; # 请改成英文档名
print D $_ while ( sort keys %hash ) ;
close D;
ps. "非常非常大" 是没有意义的描述, 有多大最好直接说有几个 GB.