需要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?

以上是需要Readline-您不能创建这种类型的实例(Readline)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>