There are ways to avoid repeat searches of each line but this should get you started.
#!/usr/bin/perl
use strict;
my $count = 0;
my $namefile = $ARGV[0] || 'names.txt'; # default if no argument
# names.txt
#ServerName1
#ServerName2
# get list of computers to search for
my @computers;
open FILE,'<',$namefile or die "Could not open $namefile : $!";
while (<FILE>){
chomp;
s/^\s+|\s+$//g; # trim spaces
next unless /\S/; # skip blank lines
push @computers,$_;
}
close FILE;
my $file = "computernames.txt";
# computernames.txt
#<Answer type="string">ServerName1.FD.net.org</Answer>
#<Answer type="string">ServerName2.FD.net.org</Answer>
#<Answer type="string">ServerName3.FD.net.org</Answer>
# search text file
open IN, '<',$file or die "Could not open $file : $!";
while (my $line = <IN>){
# repeat line search for each computer
foreach my $search (@computers) {
if ( my ($name) = $line =~ /($search[\.\w]*)/ ){
print "Name ; $name\n";
++$count;
}
}
}
close IN;
# result
if ($count){
print "$count matches\n";
} else {
print "No matches found\n";
}
poj