2011-08-10 3 views
3

Pythonのraw_input()は、矢印キーのようなすべてのbashの機能を保持し、検索を逆...Pythonのraw_input()と同じ効果を得る方法はありますか?

しかし、私はstdinからの読み取りにPerlの<>を使用する場合、機能のどれもが任意のより多くのサポートされていません...最も簡単です何

Perlでraw_inputとしてそれを行う方法? the Python docsによると

+0

@eryksun、なぜ、ファンシーファンシーエフェクトを得るにはもっと多くの作業が必要ですか? – lexer

+0

@eryksun、私は可能な限り '<>'を使うプロジェクトを持っていますが、 '<>'のすべての出現を 'Term :: ReadLine'に変更しなければなりませんか? – lexer

+0

あなたのプログラムは変更せずに、パイプ入力をrlwrapユーティリティを使ってパイプに残すことができます: 'rlwrap | perl yourscript.pl' – ysth

答えて

4

、readlineモジュールが読み込まれていれば

、その後、raw_input()は精緻な行編集およびヒストリ機能を提供するために、それを使用します。

元記事へのコメントで述べたように、あなたはそれらの機能にアクセスするには、このようTerm::ReadLineTerm::ReadLine::Gnuとして、適切なモジュールを使用する必要があります。これはPythonと変わりはありません。readlineの機能が必要な場合は、暗黙的に明示的に明示的にreadlineモジュールをロードする必要があります。

ただし、readlineで処理したい入力には、<>ではなく、選択したreadlineモジュールの入力関数を使用する必要があります。 (Term::ReadLine::Perlには、Term :: ReadLine :: Perl :: Tiedモジュールが含まれています。<>を無効にして、コードを変更することなくreadlineを実行できますが、T :: RL :: Pは2009年以降に更新されておらず、あなたがそれを使う方法を理解する時間が十分にない限り、私はそれをお勧めしません)。

+0

デモがありますか? – lexer

関連する問題