需要Readline-您不能创建这种类型的实例(Readline)
当我运行此代码时
require Readline;
my $rl = Readline.new;
my $string = $rl.readline( ':');
$string.say;
我收到此错误消息:
您不能创建这种类型的实例 (Readline)
当我use用来加载Readline它时。为什么不起作用require Readline?
回答
由于require导致模块在运行时加载,Readline符号的查找也必须推迟到运行时。这可以使用::('Type::Name')语法来完成,如下所示:
require Readline;
my $rl = ::('Readline').new;
my $string = $rl.readline( ':');
$string.say;
- No, it feels like a hack; would be better to keep track of it as being a name that wants a late-bound lookup to be produced by the compiler. What if it's a multi-part name?