我在试验时注意到tr///,它似乎没有转换反斜杠,即使在转义时也是如此.例如,
say TR"\^/v"." given 'v^/\\';
say TR"\\^/v"." given 'v^/\\';
say TR"\ ^/v"." given 'v^/\\';
Run Code Online (Sandbox Code Playgroud)
所有这些都是输出 ...\而不是我的预期,....
还有一些其他奇怪的行为,比如\看似只是转义小写字母,但是文档页面没有太多信息...... \在音译(tr///)中反斜杠()的行为究竟是什么?
列表重复运算符(xx)在每次重复时评估列表.例如,
my @input = get() xx 5;
Run Code Online (Sandbox Code Playgroud)
将评估STDIN的前5行.有没有什么方法可以重复5次元素的值,而不是每次都进行评估?目前,我一直在将它分配给变量,然后重复它,但这样看起来有点麻烦.
my $firstLine = get();
my @firstlineRepeated = $firstLine xx 5;
Run Code Online (Sandbox Code Playgroud)
是否有一个前缀或某些东西可以让我在一个声明中做到这一点?
我正在尝试为此代码高尔夫挑战编写一个Perl 6正则表达式,该挑战用规则拆分字符串:
例如:
66667888 -> '66', '66, '7', '888'
19999999179 -> '1', '99', '99', '999', '1', '7', '9'
Run Code Online (Sandbox Code Playgroud)
我以为正则表达式m:g/(.)[$0$0<!$0>|$0?]/可以正常工作,但是在负前瞻中使用捕获似乎会破坏它,而且我不知道如何正确使用它。
根据我的使用方式,它会永远循环,抛出错误 Cannot resolve caller INTERPOLATE_ASSERTION或返回错误的结果。有没有适当的方法可以提前使用捕获,或者这是一个错误?