我正在使用rakudo,以下代码:
"foo" ~~ m/(foo)/;
say $0;
Run Code Online (Sandbox Code Playgroud)
我认为输出将是:
foo
Run Code Online (Sandbox Code Playgroud)
但是,我得到:
?foo?
Run Code Online (Sandbox Code Playgroud)
(这是foo,周围有一些奇怪的unicode-y引号.)
我在文档中找不到任何相关内容,我似乎无法摆脱这些引用.这里发生了什么事?
编辑:做
say "$0";
Run Code Online (Sandbox Code Playgroud)
而是摆脱了引号,两者兼而有之
print $0;
print "$0";
Run Code Online (Sandbox Code Playgroud)
也做.所以我猜捕获实际上不是一个字符串,并在它周围加上双引号将它变成一个字符串?(顺便说一下,$ 0.gist产生"foo",而不是foo.)有人能指出我可以了解这个行为的文档部分吗?我来自Perl,并且彻底迷茫.