加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl6有没有办法做可编辑的提示输入?

发布时间:2020-12-16 06:06:55 所属栏目:大数据 来源:网络整理
导读:在bash shell中,如果你向上或向下箭头,shell会显示你输入的上一个或下一个命令,你可以编辑这些命令作为新的shell命令. 在perl6中,如果你这样做 my $name = prompt("Enter name: "); 它将打
在bash shell中,如果你向上或向下箭头,shell会显示你输入的上一个或下一个命令,你可以编辑这些命令作为新的shell命令.

在perl6中,如果你这样做

my $name = prompt("Enter name: ");

它将打印“输入名称:”,然后要求输入;有没有办法让perl6给你一个默认值,然后你只需将默认值编辑为新值.例如.:

my $name = prompt("Your name:","John Doe");

它打印出来

Your name: John Doe

John Doe部分可编辑,当您按Enter键时,编辑的字符串是$name的值.

https://docs.perl6.org/routine/prompt没有显示如何做到这一点.

如果你必须输入许多长字符串,这很有用,每个字符串只有几个不同于其他字符的字符串.

谢谢.

解决方法

要使编辑部分继续,您可以使用Linenoise模块:

zef install Linenoise

(https://github.com/hoelzro/p6-linenoise)

然后,在您的代码中,执行:

use Linenoise;
sub prompt($p) {
    my $l = linenoise $p;
    linenoiseHistoryAdd($l);
    $l
}

然后你可以用提示做你的循环.请记住,基本上所有Perl 6内置函数都可以在词法上被覆盖.现在,如何填写原始字符串,我还没想到.也许libreadline文档可以帮助你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读