> But how did you prove that $foo is recompiling?

I can't find any proof that anything is recompiled, even with //g.

D:\>perl -E"my $x; BEGIN{$x=qr/a.*u/}; use re 'debug'; my $str = 'aou' +; say $str =~ /$x/" 1 D:\>perl -E"my $x; BEGIN{$x=qr/a.*u/}; use re 'debug'; my $str = 'aou' +; say $str =~ /$x/g" aou
Please compare the verbose output if you replace qr// with q//

D:\>perl -E"my $x; BEGIN{$x=q/a.*u/}; use re 'debug'; my $str = 'aou'; + say $str =~ /$x/" Compiling REx "a.*u" Final program: 1: EXACT <a> (3) 3: STAR (5) 4: REG_ANY (0) 5: EXACT <u> (7) 7: END (0) anchored "a" at 0..0 floating "u" at 1..9223372036854775807 (checking +floating) minlen 2 Matching REx "a.*u" against "aou" Intuit: trying to determine minimum start position... doing 'check' fbm scan, [1..3] gave 2 Found floating substr "u" at offset 2 (rx_origin now 0)... ... YADDA YADDA ...

So how do you know???

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

update

And that's whats happening if you have more than one precompiled regex inside the match, like expected.

D:\>perl -E"my $x; BEGIN{$x=qr/a.*u/}; use re 'debug'; my $str = 'aou' +; say $str =~ /$x$x/" Compiling REx "(?^u:a.*u)(?^u:a.*u)" Final program: 1: EXACT <a> (3) 3: STAR (5) 4: REG_ANY (0) 5: EXACT <ua> (9) 9: STAR (11) 10: REG_ANY (0) 11: EXACT <u> (13) 13: END (0) anchored "a" at 0..0 floating "ua" at 1..9223372036854775807 (checking + floating) minlen 4 String shorter than min possible regex match (3 < 4) Freeing REx: "(?^u:a.*u)(?^u:a.*u)"

FWIW:

This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x +64-multi-t hread

In reply to Re^5: On the regex pattern variable to be inserted into another (which recompile???) by LanX
in thread On the regex pattern variable to be inserted into another by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.