【发布时间】:2021-04-20 13:45:07
【问题描述】:
在下面的代码中,正则表达式 $r 清楚地“知道”它包含文本 bar——这就是它能够与 Str bar 匹配的方式。但是.gist 和.raku 报告$r 包含变量$foo,而没有说明$foo 包含什么值。有没有办法让$r 告诉我它的计算值?
sub f {
my $foo = 'bar';
g(rx/$foo/);
}
sub g($r) {
say $r.gist;
say 'bar' ~~ rx/$r/;
}
f # OUTPUT: rx/$foo/
# 「bar」
(我知道我可以通过手动解析$r,查找所有变量,然后遍历&g 的callframes 来查找变量的值来访问相同的信息。但这似乎相当获取 Regex 显然已经知道的信息,至少在某种程度上是这样的。)
【问题讨论】:
标签: regex raku string-interpolation rakudo