在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文档可以帮助你.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。