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
+ords?
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
close file
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.
Aaron B.
Available for small or large Perl jobs and *nix system administration; see my home node.