2012-05-12 5 views
4

私はWindows上でStrawberry Perlを実行しています。コマンドプロンプトに "Default Value"を表示して、ユーザーが編集してEnterキーを押すと、Perlは新しいSTDIN行として表示します。私はIO::Promptを使用するように言われましたが、これはWindowsでは動作しないことが確認されています。編集可能なデフォルト値を持つWindows Perlラインエディタ?

GUIをTkなどで作成していないのはどうすればいいですか?

+0

関連:http://stackoverflow.com/questions/2374147/interactive-prompt-in-perl – daxim

答えて

5

ExtUtils::MakeMakerは、非常にプラットフォームに依存しないpromptの機能を持っています。私はそれがあなたのケースで使用されることを示唆していませんが、IO::Prompt::TinyのPODは、そのpromptの機能は、ExtUtils::MakeMakerの機能に基づいていると述べています。 smoke testsはIO :: Prompt :: Tinyがより良い移植性(Windowsを含む)を達成したことを反映しているようです。試してみてください。

この新しいモジュールのスモークテストでは少し早いと言えますが、ExtUtils::MakeMakerpromptに基づいていれば、移植性を考慮して設計されています。

Term::Promptが別のオプションです。それは長めのものであり、マルチプラットフォームのスモークテストの成功の歴史は長い。しかし、それはTerm::ReadKeyText::Wrapの非コア依存関係を持っています。 IO::Prompt::Tinyは、コアの依存関係に固執しています。

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

出力:

Proceed? (y/n) [n] 
+0

[IO ::プロンプター](のhttp:// p3rl。 org/IO :: Prompter)([テスト行列](http://matrix.cpantesters.org/?dist=IO-Prompter))もIO :: Promptよりも優れています。 – daxim

+0

@Sho南本:私の答えがあなたに役立ち、有用であるかどうかを調べるために、数日後にフォローアップしたかっただけです。 – DavidO

+0

このケースでは、Term :: ReadLineのようなものが必要でしたが、Windowsで動かすことができませんでしたので、別の回避策を見つけました。しかし、あなたのものはデフォルト値を作るのに役立ちます、私はちょうど私のユーザーが必要に応じてそれを編集してもらいたいと思っていました。 –