私はWindows上でStrawberry Perlを実行しています。コマンドプロンプトに "Default Value"を表示して、ユーザーが編集してEnterキーを押すと、Perlは新しいSTDIN行として表示します。私はIO::Promptを使用するように言われましたが、これはWindowsでは動作しないことが確認されています。編集可能なデフォルト値を持つWindows Perlラインエディタ?
GUIをTkなどで作成していないのはどうすればいいですか?
私はWindows上でStrawberry Perlを実行しています。コマンドプロンプトに "Default Value"を表示して、ユーザーが編集してEnterキーを押すと、Perlは新しいSTDIN行として表示します。私はIO::Promptを使用するように言われましたが、これはWindowsでは動作しないことが確認されています。編集可能なデフォルト値を持つWindows Perlラインエディタ?
GUIをTkなどで作成していないのはどうすればいいですか?
ExtUtils::MakeMakerは、非常にプラットフォームに依存しないprompt
の機能を持っています。私はそれがあなたのケースで使用されることを示唆していませんが、IO::Prompt::TinyのPODは、そのprompt
の機能は、ExtUtils::MakeMaker
の機能に基づいていると述べています。 smoke testsは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]
[IO ::プロンプター](のhttp:// p3rl。 org/IO :: Prompter)([テスト行列](http://matrix.cpantesters.org/?dist=IO-Prompter))もIO :: Promptよりも優れています。 – daxim
@Sho南本:私の答えがあなたに役立ち、有用であるかどうかを調べるために、数日後にフォローアップしたかっただけです。 – DavidO
このケースでは、Term :: ReadLineのようなものが必要でしたが、Windowsで動かすことができませんでしたので、別の回避策を見つけました。しかし、あなたのものはデフォルト値を作るのに役立ちます、私はちょうど私のユーザーが必要に応じてそれを編集してもらいたいと思っていました。 –
関連:http://stackoverflow.com/questions/2374147/interactive-prompt-in-perl – daxim