Roy -
Thanks for shedding some light onto this issue. I am grateful for your functional modification of the code which does indeed produce the desired output.
As for the reasoning why the original code behaves the way it does, however, I am not sure I follow your explanation. Since the regex is missing the
//o modifier I would have expected it to get re-compiled on every iteration of the
for-loop (please correct me if I am wrong here!). If it doesn't - why not?
On the other hand, your reasoning is supported by the output of the following code modification:
my @strings = qw( aaabbbb ab abb aabb aaabb aabbb );
my $a_counter;
my $b_counter;
for my $string ( @strings )
{
print "In $string there were $a_counter 'a's and $b_counter 'b's.\
+n" if ( $string =~ /(a(?{$a_counter ++; } ))+(b(?{$b_counter ++;}))+
+/ );
}
which produces
In aaabbbb there were 3 'a's and 4 'b's.
In ab there were 4 'a's and 5 'b's.
In abb there were 5 'a's and 7 'b's.
In aabb there were 7 'a's and 9 'b's.
In aaabb there were 10 'a's and 11 'b's.
In aabbb there were 12 'a's and 14 'b's.
So: Can anybody please explain conclusively what is happening here in the compilation of the regex?
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.