You'll also need a special case for '( \\( ( three ) ) )'. In this case, there are three sets of parens, because the backslash itself is escaped.
The solutions quickly become ugly, complex, and error-prone, which is why the tried and proven module Text::Balanced is a good idea.
Update: Ok, MUBA's approach handles the escaped-backslash case too.
My point is that if the idea of Perl is to make easy things simple and difficult things possible, I'd favor an approach that takes it a step further by making a difficult thing easy for me.
| [reply] [d/l] |
That is being taken care of. Read my previous reply.
I said to ignore a backslash when $escape != 0, that is, when the previous character is a backslash. Don't worry :)
| [reply] |