http://www.perlmonks.org?node_id=15879


in reply to Re: Balancing Parens
in thread Balancing Parens

Ah, I should have been more specific. The real data can have a variable number of elements. Thanks anyway.

Replies are listed 'Best First'.
RE: RE: Re: Balancing Parens
by KM (Priest) on Jun 01, 2000 at 22:31 UTC
    Well, be more specific. Show examples of the actual possible data, no pseudo-data that won't look like the actual data. Give us some test cases.

    Cheers,
    KM

      Okay:

      Acrobatics, P/H, default(DX-6), page(B48) Bicycling, P/E, default(DX-4, SK:Motorcycle), page(B48) Breath Control, M/VH, page(B48) Free Fall, P/A, default(DX-5, HT-5), page(B48) Jumping, P/E, page(B48) Parachuting, P/E, default(DX-4, IQ-6), page(B48) Swimming, P/E, gives(=@max(@int(%Level/10), 1) to Swim), default(DX-4, + ST-5), page(B49)
      These being 4,4,3,4,3,4, and 5 elements respectively.
      The last one is a more complicated one, and the third element should be: gives(=@max(@int(%Level/10), 1) to Swim)
      There is no limit to how many function calls can be embeded (so func1(func2(func3(...funcN()...) )
        $_=' Acrobatics, P/H, default(DX-6), page(B48) Bicycling, P/E, default(DX-4, SK:Motorcycle), page(B48) Breath Control, M/VH, page(B48) Free Fall, P/A, default(DX-5, HT-5), page(B48) Jumping, P/E, page(B48) Parachuting, P/E, default(DX-4, IQ-6), page(B48) Swimming, P/E, gives(=@max(@int(%Level/10), 1) to Swim), default(DX-4, + ST-5), page(B49) '; ($re=$_)=~s/((\()|(\))|.)/$2\Q$1\E$3/gs; @$ = (eval{/$re/}); die $@ if $@=~/unmatched/; $re = join'|',map{quotemeta}@$; print join"\n",/((?:$re|[^,])+)/g;