2014-10-27 54 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; 
}