A script like this:

        line1:  $string3 = "bacdeabcdefghijklabcdeabcdefghijkl";
        line2:  $string4 = "xxyyzzbatttvv";

        line3:  print "\$1 = $1 [EMAIL PROTECTED],$+[0]}, \$& = $&\n" 
if($string3
=~ /(a|b)*/);
        line4:  print "\$1 = $1 [EMAIL PROTECTED],$+[0]}, \$& = $&\n" 
if($string4
=~ //);

Run and gett result:

        $1 = a @{0,2}, $& = ba
        $1 =  @{0,0}, $& = 


If I change the code of line3 to:

        print "\$1 = $1 [EMAIL PROTECTED],$+[0]}, \$& = $&\n" if($string3 =~
/(a|b)+/);

and keep everything else the same, I will get:

        $1 = a @{0,2}, $& = ba
        $1 = a @{6,8}, $& = ba


  This result doesn't look very promising to me. The first matching
results keeps the same
between * and +, while the second who is supposed to inherit the
pervious match shows 
different result.

The version I'm using is 5.6.1. Can anyone tell why is this? A bug? Or
some tricky I can't
figure out? Does this work differently in latest release?

Thanks.

Sincerely
Pine

Reply via email to