4

我在 Windows 上运行 Strawberry Perl,我想在命令提示符中打印一个“默认值”,以便用户可以编辑它,然后按 Enter,Perl 会将其视为新的 STDIN 行。我被告知要使用IO::Prompt,但已经确定这在 Windows 中不起作用。

没有用Tk或其他东西制作 GUI,我该怎么做?

4

1 回答 1

5

ExtUtils::MakeMaker有一个prompt功能,它非常独立于平台。我不建议在您的情况下使用它,但IO::Prompt::Tiny的 POD声明它的prompt功能基于它的方式ExtUtils::MakeMaker冒烟测试似乎反映了 IO::Prompt::Tiny 实现了更好的可移植性(包括 Windows)。你可以试一试。

可以肯定的是,这个新模块的冒烟测试还为时过早,但如果它是基于ExtUtils::MakeMaker's 的prompt,它是为便携性而设计的。

Term::Prompt是另一种选择。它存在的时间更长,并且在多平台烟雾测试方面的成功历史也更长。Term::ReadKey但它具有和的非核心依赖项Text::WrapIO::Prompt::Tiny坚持核心依赖关系,如果这是一个问题。

use IO::Prompt::Tiny qw( prompt );
my $input = prompt( 'Proceed? (y/n)', 'n' );

输出:

Proceed? (y/n) [n]
于 2012-05-12T06:08:44.627 回答