I stumbled acros the following problem while writing code to characterize numbers. I want to capture those numbers that consists of runs of consecutive digits such as 123 or 4567 (any length > 1 and < 10). Of course there are many ways to do this, but I tried the following and it works nicely:

#!perl use strict; use warnings; while (<DATA>) { chomp($_); print "$_ okay\n" if /^(\d)((??{$+ + 1}))+$/; } __DATA__ 234 213 12345
with as output:
234 okay 12345 okay
as expected.

However, if I include use warnings; as I usually do, I get the following warning:
((??{$+ + 1}))+ matches null string many times before HERE mark in regex m/^(\d)((??{$+ + 1}))+ << HERE $/ at ./test.pl line 8.

Could anyone enlighten me as to (1) the source of the warning, and (2) how to reformulate the regexp to get rid of it?

I'm aware that the (??{...}) construct is experimental and won't use it in production code, but it triggers my curiosity.

Thanks in advance, -gjb-


In reply to Code in regexp by gjb

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.