如果我正确理解file1和file2都包含IP(每个文件中都是唯一的),并且您希望在file2中获得IP,而不是在file1中。如果是这样,那么下面的代码可能达到了您的目标。
虽然您的代码似乎可以做到这一点,但这可能更清楚。
#!/usr/bin/perl
use strict;
use warnings;
my $base = shift @ARGV;
my $input = shift @ARGV;
my $res = 'result.txt';
open ("BASE","<","$base") or die $!;
open ("INP","<","$input") or die $!;
open ("RES", ">", "$res") or die $!;
my %seen;
while (my $line = <BASE>) {
chomp $line;
$seen{$line}++;
}
close BASE or die $!;
while (my $line = <INP>) {
chomp $line;
print RES "$line\n" unless $seen{$line}; # only in file2 not in file1
}
close INP or die $!;
close RES or die $!;