So counting parens on the cheap w/o full parsing (maybe -> Deparse, B, ...) is a problem.
I had resolved this problem by running all code through perltidy -dac first. An additional problem is whether braces might occur with strings. This can be dealt with by reducing all strings to null before running through perltidy. The only other possibility I can think of would be braces appearing with regular expressions, but thus far, I hadn't run into enough occurrences to warrant figuring out a solution yet.
Thanks everyone for your responses. I'll look more at the CPAN references mentioned earlier later tonight.