I don't know how to check that but doesn't that stringify then recompile the precompiled regexes?

Hm, that's a good question, I'm not sure at the moment how to check either... hopefully inspiration will strike later :-)

Your and jwkrahn's posts did remind me of a possibly important caveat: (??{...}) will re-execute the block of code every time, while interpolation will only execute it once:

use warnings; use strict; #use re 'debug'; my $str = "foobar"; sub getit { print "Getit! pos=",pos($str)//"undef","\n"; return qr/[aeiou]/i; } print "### haukex\n"; print "Matches: <", $str=~/(??{getit})/g, ">\n"; print "### jwkrahn\n"; my $reg_str = getit(); print "Matches: <", $str=~/$reg_str/g, ">\n"; print "### Eily\n"; print "Matches: <", $str=~/@{[getit]}/g, ">\n"; __END__ ### haukex Getit! pos=0 Getit! pos=1 Getit! pos=2 Getit! pos=3 Getit! pos=4 Getit! pos=5 Getit! pos=6 Matches: <ooa> ### jwkrahn Getit! pos=undef Matches: <ooa> ### Eily Getit! pos=undef Matches: <ooa>

In reply to Re^3: Subroutine Reference in a Regexp? by haukex
in thread Subroutine Reference in a Regexp? by Amblikai

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.