我在Windows上运行Strawberry Perl,我想在命令提示符下打印“Default Value”,以便用户可以编辑它,然后按Enter键,Perl会将其视为新的STDIN行。我被告知使用IO::Prompt,但已确定这在Windows中不起作用。
如果没有使用Tk或其他东西制作GUI,我该怎么做?
答案 0 :(得分:5)
ExtUtils::MakeMaker具有prompt
功能,与平台无关。我并不是建议在您的情况下使用它,但是IO::Prompt::Tiny的POD声明其prompt
函数基于ExtUtils::MakeMaker
的方式。 smoke tests似乎反映出IO :: Prompt :: Tiny已经实现了更好的可移植性(包括Windows)。你可以尝试一下。
这个新模块的烟雾测试有点早,可以肯定地说,但如果它基于ExtUtils::MakeMaker
的{{1}},则它是为便携性而设计的。
Term::Prompt是另一种选择。它已经存在更长时间,并且具有更长的多平台烟雾测试成功历史。但它具有prompt
和Term::ReadKey
的非核心依赖关系。 Text::Wrap
坚持核心依赖关系,如果这是一个问题。
IO::Prompt::Tiny
输出:
use IO::Prompt::Tiny qw( prompt );
my $input = prompt( 'Proceed? (y/n)', 'n' );