这是代码:
my @s=<a b c d>;
for @s.kv {
for ($^k ... @s.elems) {
printf("%s ", $^v);
}
printf("\n");
}
预期输出为:
# a b c d
# b c d
# c d
# d
但它给出了这个错误(可能是其他错误)
key 0, val 1 Too few positionals passed; expected 2 arguments but got 1
它看起来像主循环的位置变量,$^k
不能$^v
在内循环内部使用。如何解决?谢谢。更新:内循环内的错字已修复