use warnings; use strict; use Acme::Tools qw(minus); my $tmpdata = "tmpdata"; my $DestDevice = "Box"; my %data; open my $TMPDATA, "<", "$tmpdata" or die "$!"; while (<$TMPDATA>) { next if (/^(?:$|sh|\s*Source|^$DestDevice|Accounting)/); my @fields = split; push @{ $data{$fields[1]} }, [ @fields[0,2,3] ]; } close $TMPDATA; my @ip1 = keys %data; my @ip2 = ; chomp @ip2; my @nomatches = minus(\@ip1, \@ip2); for (@nomatches) { for my $match (@{ $data{$_} }) { my @Results = join "\t", $match->[0], $_, @{$match}[1,2]; print @Results, "\n"; } } exit; __DATA__ 10.2.9.2 10.2.9.3 10.2.9.6 #### 209.68.19.130 10.2.9.4 33 15941 67.148.147.65 10.2.9.5 57 39207