是否可以按任意顺序定义嵌套的regexes
?
以下程序按预期工作:
my regex letter { <[a b]> }
my regex word { <letter> + }
my $string = 'abab';
$string ~~ &word;
put $/; # abab
如果我交换前两行,编译器会产生错误。
有没有办法覆盖这个限制(不使用grammars
)?
答案 0 :(得分:4)
您可以将正则表达式放在您预先声明但稍后设置的变量中:
my $letter;
my regex word { <$letter> + }
$letter = regex { <[a b]> }
my $string = 'abab';
$string ~~ &word;
put $/; # abab