I wouldn't recommend slurping the files, since you want to look at individual lines. Just go through the files one by one, checking each file line-by-line. Since you're looking for design guidance rather than code, the logic would go something like this:
create a hash which has the keywords to watch for as its keys
foreach file (probably using File::Find) do
open file (error check)
foreach line in file
split the line into fields
is the first field from this line in my hash of important keyw
if yes, are there empty or dash fields in this line?
if yes, report this file
(and keyword and/or line number, optionally
and move on to next file
end of lines
end of files
Take a look at File::Find; all the indented code above would be part of the callback you'd pass to File::Find's find() method.
Available for small or large Perl jobs and *nix system administration; see my home node.