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