in reply to Perl beginner here, needs a shove in the right direction.

I would have chosen a different route. File::Find has rarely been needed with *nix find, xargs, and egrep. If the final decision is too complicated, you can feed that to Perl:
find . -iname \*.txt | xargs egrep -H '^keyword\b' | perl -lane 'lengt +h($F[2]) and ($F[2] ne q/-/) and print' > some_output_file

-QM
--
Quantum Mechanics: The dreams stuff is made of