use strict;
use warnings;
use 5.010;
open (my $LOGFILE, "<", "logfile.txt");
open (my $MATCHFILE, "<", "matches.txt");
chomp(my @keys = <$MATCHFILE>);
close $MATCHFILE;
#Initialize hash:
my %target_matches;
@target_matches{@keys} = ();
#now the keys exist, and the values are undef
my($num_records, $match_count) = (0, 0);
while (<$LOGFILE>) {
chomp;
my @fields = split /,/;
if (exists $target_matches{$fields[1]}) {
$match_count++;
}
$num_records++;
say "Total records: $num_records, matches: $match_count";
}
close $LOGFILE;
####
1
2
3
4
####
a,5,b,c,d,e
a,2,b,c,d,e
a,8,b,c,d,e
a,3,b,c,d,e
####
Total records: 1, matches: 0
Total records: 2, matches: 1
Total records: 3, matches: 1
Total records: 4, matches: 2