2014-10-27 51 views
0

我有下面的代碼有人可以解釋爲什麼這段代碼進入無限循環,以及我如何捕獲匹配的模式。正則表達式::彙編和無限循環

my $dis = (ff => 'dfsdf2' 
      yy => 'xx'); 

my $ra = Regexp::Assemble->new->track(1)->add(keys %dis); 

my $data='blah blah ff dfsf yy'; 

while($ra->match($data)) { 
     my $res = $ra->matched; 
     print $res; 
    } 

我使用v5.18.0草莓和更新的正則表達式::組裝

回答

0

正則表達式::組裝沒有任何內置的一樣,迭代提供支持。你必須這樣做:

use 5.010; 
my $re = $ra->re; 
while ($data =~ /$re/g) { 
    my $res = $ra->source($^R); 
    print $res; 
}