I can offer you some simplification.

First, the regex2 sub doesn't have to use eval, as the normal closure mechanism combined with //o should give you the semantics you have now. Also, you're going to the trouble of initializing your returned count to zero, then if it stays zero, you're returning undef. Better just to leave it uninitialized and use ++ on it; the results will be as you want. Thus:

sub regex2 { my $pat = shift; sub { my $count; ++$count while /$pat/iogx; $count }; }

    -- Chip Salzenberg, Free-Floating Agent of Chaos


In reply to Re: Implementing variable-width negative lookbehind assertions? by chip
in thread Implementing variable-width negative lookbehind assertions? by ToasterLeavings

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.