In <[EMAIL PROTECTED]>, Bart Lateur writes:
:Likely the most justifiable to want to be able to execute Perl code in a
                       >> reason

:This makes the implementation very tricky. I
:wouldn't be surprised if precisely this feature is the main reason why
:the current implementation is so notoriously unstable.

I'm not aware of any instability caused by this. The instability is
caused by various other factors, discussed at length on p5p.

:The fact that the embedded code is called 3 times, not more, surely
:suprised me. It probably will surprise many people. Apparently, it is
:only executed once for every lowercase letter, not just for any
:character.
:
:This inpredictability is yet another reason to discourage incrementally
:modify global data structures.

I think this is precisely why the non-assertion form encourages use of
local() - in general, the local() constructs will have executed a
predictable number of times _that have not been unwound_ by the time
a successful match is achieved. I don't think this observation (of
mine) is particularly relevant to the proposal, however.

:=head2 /(?(condition)yes-pattern|no-pattern)/

The simplest form of this is (?(1)yes|no). This is rather harder to
emulate with other mechanisms without running to eval. OTTOMH it is
equivalent to (??{ defined($1) ? 'yes' : 'no' }).

Hugo

Reply via email to