use strict; use warnings; use autodie; open my $schedule, '<', 'schedule_file.txt'; my %schedule; $schedule{$_} = 1 while (<$schedule>); close $schedule; open my $search, '<', 'search_file.txt'; my %search; $search{$_} = exists $schedule{$_} while (<$search>); close $search; my @yes = ('','yes'); my $regex = qr/tbsl/; open my $keywrds, '<', 'keywrds.txt'; open my $wave, '>', 'wavefile.txt'; while (<$keywrds>) { if (exists($search{$_}) and (/$regex/) ) { print $wave $_, ' ', $yes[$search{$_}], "\n"; } } close $wave; close $keywrds;