use Modern::Perl; my %keys; open my $file1, '<', 'filename1.txt' or die "Can't open file 1: $!"; open my $file2, '<', 'filename2.txt' or die "Can't open file 2: $!"; #read in the first file. while (<$file1>) { chomp; #remove newline. $keys{$_}++; #Add the key to your hash } #find keys in the second file. while (<$file2>) { foreach my $key (keys %keys) { say "$key matches" if /\b\Q$key\E\b/; } }