【发布时间】:2018-11-06 01:47:31
【问题描述】:
我认为这两段代码应该是等价的。第一个使用<|w> 指定一个单词边界,其中非单词字符(或字符串的开头)应位于H 之前。第二个例子使用<<,它应该做同样的事情。
my $string = 'Hamadryas perlicus';
say $string ~~ /
<?after <|w> Hamadryas \s+ >
(\w+)
/;
say $string ~~ /
<?after << Hamadryas \s+ >
(\w+)
/;
第一个匹配,但第二个不匹配:
「perlicus」
0 => 「perlicus」
Nil
这两者还有其他区别吗?
【问题讨论】:
-
嗯,« 是left word boundary。但这仅意味着它应该起作用。我把它改到右边了,它也不起作用,所以肯定有别的东西在起作用......