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