- 论坛徽章:
- 30
|
本帖最后由 情节可以很简单 于 2018-01-03 10:00 编辑
谢谢各位了!求别沉!我在for循环时,不知道怎样表达 对2个文件中“每个元素”进行对比,以前只处理过对某列数据提取。
下面是我尝试的两种方案:但是“@”这个符号报错,怎么用?
#########方案一
open A,"A.txt";
open B,"B.txt";
open E,">E.txt";
@a=<A>;
@b=<B>;
@a=map split @a;
@b=map split @b;
$a=@a;
for (1..$a)
{
if ($a[$_]==$b[$_])
{print E "A";}
else
{print E "B";}
}
###########方案二:"$A"报错,而且并没有输出第三个文件。
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)?'A':'B';
}
$r;
}
|
|