#!/usr/bin/env perl -l use strict; use warnings; use Inline::Files; my %found; /^>(.*)\Z/ and $found{$1} = 0 while ; my $re = '\b(' . join('|' => keys %found) . ')\b'; while () { ++$found{$1} while /$re/g; } print "$_ occurs: $found{$_}" for sort keys %found; __REFERENCE_FILE__ >Apple ignored blah blah blah >Banana ignored blah blah blah >Grape ignored blah blah blah __SEARCH_FILE__ Apple Banana Avocado Orange Grape Apple Apple Banana Banana