测试用例:
use 5.026;
use Perl6::Controls qw(for);
for (1..10) -> $n {
say $n;
}
loop {};
期望:
没有包或对象引用就无法调用方法“循环”
知道:
无限循环
答案 0 :(得分:5)
use Perl6::Controls qw(for);
BEGIN {
delete $^H{'Keyword::Simple/keywords'}{"loop"};
}
...
我偶然发现通过B::Deparse
运行您的脚本。
要选择要保留的关键字,您可以说
use Perl6::Controls;
BEGIN {
my @keep = ...; # e.g. @keep = qw(for);
my %keywords;
@keywords{@keep} = @{$^H{'Keyword::Simple/keywords'}}{@keep};
$^H{'Keyword::Simple/keywords'} = \%keywords;
}
答案 1 :(得分:1)
不能。查看Perl6::Controls的源代码,它使用它自己的导入方法来使用Keyword::Declare定义所有新关键字。它会忽略在使用行上传递的任何参数。