我在 cygwin 下运行 Perl 脚本,它从 <STDIN>
获取输入并不断处理请求。
#!/usr/bin/perl
print "Enter Input:";
while(<STDIN>) {
print "Recieved Input: $_";
print "Enter Input:";
}
$perl testPerl.pl
Enter input:input1
Recieved input:input1
Enter input:inpt2
Recieved input:input2
Enter input:
现在,我想要当前提示符处的向上箭头:“输入输入:”以获取之前的输入,即“input2”、“input1”
它在windows环境下运行时表现符合预期(cmd.exe)
但是 cygwin 下的问题是向上箭头字面上将光标向上移动 1 行,即它移动到“已接收输入:input2”行
请分享您对此的看法。
最佳答案
查看 Term::Readline 模块。这将接管您程序的输入,并处理历史记录,这就是我认为您正在谈论的内容。
这将是您的程序直接转换为使用 Term::ReadLine:
<pre> use Term::ReadLine;
my $term = new Term::ReadLine 'Simple Perl calc';
my $prompt = "Enter Input: ";
while ( defined ($_ = $term->readline($prompt)) ) {
print "Recieved Input:$_\n";
$term->addhistory($_) if /\S/;
}
</pre>
关于windows - 如何在 cygwin 下处理 Perl 脚本中的箭头键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2078370/