Recently we came across a script on our system that began hanging when we ported it to perl 5.6.0 (our system is currently running 5.005). We tracked it down and found that there was one regular expression that was causing the trouble. We've simplified the regex down to a one liner.
perl -e '$_ = "a"; while (m/(\G|^)(a)/g) {print "[$2]\n";}'

We corrected the code to look like (in essense) the following (because (\G|^) is redundant):
perl -e '$_ = "a"; while (m/(\G)(a)/g) {print "[$2]\n";}'

My question is, why does the first example hang under perl 5.6.0. Is there anybody with insight into what changed in the engine. Although the first regex is a bad example of what to do, this still seems like a bug in 5.6.0.

I'm posting this both to find an answer, and to invite more discussion on "\G" in regex's for newbies.



my @a=qw(random brilliant braindead); print $a[rand(@a)];

Edit: chipmunk 2001-05-15


In reply to regex (\G) vs. (^|\G) by Rhandom

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.