If each entry is just like this, that is, terminated with
\n}\n, you could just set $/ to
\n}\n, read in the records one by one and print
if there's a match.
If the BiBTeX file is a bit more of a mess, you will have to
parse the file. Text::Balanced might help you, or Parse::RecDescent,
depending on how exactly the file looks like.