如何在提示用户输入时提供可编辑的默认值?

Ale*_*ler 4 terminal perl prompt

在Perl脚本中,我想提示用户输入并为他提供可编辑的默认值.到目前为止我有这个:

#!/usr/bin/perl

print "what's your name? [John Doe]: ";
$name = <STDIN>;
chomp $name;
if (!$name)
{
    $name = "John Doe";
}
print "hello $name.\n";
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是一个解决方案,我可以STDIN在用户开始输入之前使用"John Doe" .所以它实际上是一个可编辑的默认输入.例如,用户可以按退格键3x然后键入"Wayne"以获得"John Wayne"而不是从头开始键入整个字符串"John Wayne".我试图打印到STDIN,但那不起作用.

tch*_*ist 5

根据定义,您无法写入stdin.你将不得不使用类似的东西Term::ReadLine::Gnu.

您正在寻找的功能被调用PREPUT,它是该readline功能的第二个参数.