in reply to Braces
To solve this just using loops (iterative technique), you have to build a stack of some sort to keep track of how many levels of braces you've processed. Fortunately Perl makes this trivial by using perlfunc:push and perlfunc:pop.
For a recursive technique, take your current while loop and make it a sub. Then call the sub again when you encounter an open brace. Exit the sub when you match the closing brace, and print along the way. You're still using a stack, but it's the call frame stack instead of an array you manipulate yourself.
|
|---|