MudGuard: Schleife über m//g mag nicht so wie ich

Beitrag lesen

Hi,

  
use strict;  
use warnings;  
  
my $teststring = "xaysdfasldfasfxbyoiuwrwerx1yasdfsadfsadf";  
  
while ($teststring =~ m~\Gx(.)y~g)  
{  
	print "found $1 between x and y \n";  
}  

sollte m.E. ausgeben:

found a between x and y
found b between x and y
found 1 between x and y

Leider wird aber nur

found a between x and y

ausgegeben.

Ohne das \G bekomme ich endlos
found a between x and y
found a between x and y
found a between x and y
ausgegeben, weil das Matching immer wieder am Stringanfang beginnt - ist ja auch logisch.

Das \G sollte eigentlich dafür sorgen, daß beim zweiten Mal eben nicht am Stringanfang, sondern nach dem ersten Match zu suchen begonnen wird.
Aber es wird kein zweites Mal gematcht.
Und das verstehe ich nicht.

Kann mir bitte jemand auf die Sprünge helfen?

Danke,
cu,
Andreas

--
Warum nennt sich Andreas hier MudGuard?
O o ostern ...
Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.