Readline入力からデフォルトのテキストを印刷できません

Readline入力からデフォルトのテキストを印刷できません

私はデータベースへのインターフェースを作成していて、アイテムを編集できるようにしたいです。私はReadlineを使用すると思いましたが、動作させることはできません。私のコードは、以下に基づいて動作する必要があると言いたいと思います。用語::ReadLine::GnuそしてSEへの回答

perl -w -MTerm::ReadLine -E'
$term = new Term::ReadLine "ProgramName";
$prompt = "prompt> ";
sub su {insert_text("----default----");};
$attributes = $term->Attribs;
$attributes{startup_hook} = \&su;
while (defined ($_ = $term->readline($prompt)))
{ eval; }
'

私はきれいなプロンプトを受け取りました:

prompt> 

私はこれを期待しましたが:

prompt> ----default----

私はまだPerlに精通していません、そしてますます複雑になっています。内側にバグがあるのでしょうか?何か抜けたものはありますか?それともモジュールの実装に抜け穴がありますか?

答え1

次の構文を使用できることがわかりました。

$term->readline($prompt, $default)

これは質問のコードより短く簡単です。

ここで見つけました。用語::ReadLine::Perl5まだこの3つがどのように関わっているかは不明です。

  • 用語::ReadLine::Perl5
  • 用語::ReadLine::Gnu
  • 用語::ReadLine

(しかし、この質問はまだ開いています。)

関連情報