http://qs321.pair.com?node_id=171973

This perl 5.006001.
I have casted this surprising behavior (which?) in the traditional froggy $A++ obfu. The goal is to increment $A once in some convoluted way.

$A += ('(A)' =~ m(\(A\)))[0] == ('(A)' =~ m((A)))[0]; $A += ('(A)' =~ m|\(A\)|)[0] == ('(A)' =~ m|(A)|)[0];

you can contribute by sending to $A++@mongueurs.net and /msg BooK if your contribution does not appear soon enough.

-- stefp -- check out TeXmacs wiki

Due to the lack of feedback. I ask the question more clearly Is it a documented feature that qr() and m() behave oddly with bacckslashed paren while qr// and m// don't?
See below how qr(\(a\)) and qr|\(a\)| behave differently?

DB<1> $a = qr((a)); print "'$a' "; print '(a)' =~ m|$a| '(?-xism:(a))' a DB<2> $a = qr(\(a\)); print "'$a' "; print '(a)' =~ m|$a| '(?-xism:(a))' a DB<3> $a = qr(\\(a\\)); print "'$a' "; print '(a)' =~ m|$a| '(?-xism:\\(a\\))' DB<4> $a = qr|\(a\)|; print "'$a' "; print '(a)' =~ m|$a| '(?-xism:\(a\))' 1

tye explained it to me:" backslashing the delimiter allows it to be inside the delimited text, it doesn't cause the backslash to be included in the string as well". Thanks tye.

Replies are listed 'Best First'.
Re: bug or feature? $A++ certainly :)
by BooK (Curate) on Jun 07, 2002 at 12:28 UTC

    Aargh! I do not have that much time, but you have access to the repository too... ;-) And those TT2 wrappers are simple enough.

    Anyway, all contributions are welcome, but please check that it has not be done before (there are already more than 160 different things on the page), and post to $A++@mongueurs.net only.