作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 bash shell 中,如果您点击向上或向下箭头,shell 将显示您输入的上一个或下一个命令,您可以将这些命令编辑为新的 shell 命令。
在 perl6 中,如果你这样做了
my $name = prompt("Enter name: ");
它会打印“Enter name:”然后要求输入;有没有办法让 perl6 给你一个默认值,然后你只需将默认值编辑为新值。例如:
my $name = prompt("Your name:", "John Doe");
并打印
Your name: John Doe
John Doe 部分是可编辑的,当您按下回车键时,编辑的字符串就是 $name 的值。
https://docs.raku.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 文档可以帮助您。
关于input - perl6 有没有办法进行可编辑的提示输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43032827/
我是一名优秀的程序员,十分优秀!