use strict; use warnings; open my $keyword_fh, '<', 'keywords.txt' or die $! my %keywords; while ( <$keyword_fh> ) { chomp; $keywords{ $_ } = ''; } close $keyword_fh; open my $data_fh, '<', 'data.txt' or die $!; while( my $line = <$data_fh> ) { chomp $line ; my @found = grep { exists $keywords{ $_ } } $line =~ m/([^\W\d_]+)/g; print "Line $.: @found\n"; } close $data_fh;