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確かに言うと、この新しいモジュールのスモークテストは少し早いですが、がに基づいている場合は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]
于 2012-05-12T06:08:44.627 に答える