my @data = <A>
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 ( <B> ) {
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.
open $A, 'A.txt'open $B, 'B.txt'
while ($m = <$A>) {
$n = <$B>
chomp $m
chomp $n
print X($m,$n), "\n"
}
sub X{
my ($m, $n) = @_
my $r
for (0..length($n)) {
$r .= substr($m, $_, 1) eq substr($n, $_, 1)?'0':'1'
}
$r
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)