in reply to Multiline pattern matching

If the part you left out can contain matching pairs of braces:

foo { bar { }; };
then I encourage you to try Parse::RecDescent. If the part you left out can also contain braces that are quoted or escaped in some way:
foo { bar "No closing } found!" };
then I strongly encourage you to try Parse::RecDescent.

        - tye (but my friends call me "Tye")