私はデータベースへのインターフェースを作成していて、アイテムを編集できるようにしたいです。私は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
(しかし、この質問はまだ開いています。)