【发布时间】:2013-02-28 17:07:37
【问题描述】:
我正在尝试用 readline 替换 STDIN。如果我使用 STDIN(如注释中的代码,请参阅代码),则光标在 同一行 中的 printf 输出后即可输入。但是使用 readline 的 printf 输出不知何故消失了,只有 readline 提示可见。我可以插入“打印”\n“;” (注释掉)在 printf 的下一行,它将提示移动到下一行,并且 printf 输出可见。但是,我希望有一个格式化的提示,并且光标直接在提示之后(同一行)。 printf 赋值比下面的例子要复杂一些。 printf 是否可行,或者我有什么选择? 提前谢谢。
#!/usr/bin/perl -w
use Term::ReadLine;
use Term::ReadKey;
my $term = Term::ReadLine->new('name');
printf "%-12s","Input: ";
# my $new_value = <STDIN>;
# print "\n";
my $new_value = $term->readline('--> ');
【问题讨论】:
-
正如 choroba 所提到的,您可能正在遭受缓冲:有关详细信息,请参阅 perl.plover.com/FAQs/Buffering.html
标签: perl printf readline prompt