请教下如果处理这两个文件的内容?



QUOTE:
原帖由 smonkey0 于 2008-4-24 08:48 发表

这里面有个小小错误...平时不被人注意的...呵呵

什么小错误啊?
小弟按照楼主的思路写了一个,初学碰到不少问题,折腾了好久,当练习不错
结果输出到文件3里

#!/usr/bin/perl -w

open(rf1,"1") or die ("error open 1");
open(wf3,">>3") or die ("error open 3");
@f1=<rf1>;
while(@f1)
{
        $line1= shift @f1;
        open(f2,"2") or die ("error open 2");
        @f2=<f2>;
        $string=$line1;
        while(@f2)
        {
                $line2=shift @f2;
                #print "line1=".$line1;
                #print "line2=".$line2;

                if($line1 eq $line2)
                {
                        #print "delflag\n";
                        $string=undef;
                }
        close(f2);
        }
        print wf3 $string;

}
close(rf1);
close(wf3);


foreach的
文件较大用while吧

]#!/usr/bin/perl -w

open(rf1,"1")|| die;
open(wf3,">3")|| die;
open(rf2,"2")|| die;
@f1=<rf1>;
@f2=<rf2>;
foreach $line1 (@f1)
{
        chomp($line1);
        $string=$line1."\n";
        #print $string;

        foreach $line2 (@f2)
        {
                chomp($line2);
                #print "l1=".$line1."\n";

                #print "l2=".$line2."\n";

                if($line1==$line2){
                        $string=undef;
                #       print "del\n";

                }
        }
        print wf3 $string;
}