我有下面的腳本,它與文檔中提要段落中的示例幾乎相同。如何使用Term :: ReadLine檢索命令歷史記錄?
use strict;
use warnings;
use Term::ReadLine;
my $term = Term::ReadLine->new('My shell');
print $term, "\n";
my $prompt = "-> ";
while (defined ($_ = $term->readline($prompt))) {
print $_, "\n";
$term->addhistory($_);
}
它執行沒有錯誤,但不幸的是,即使我單擊向上箭頭,我只得到^[[A
並沒有歷史。我錯過了什麼?
print $term
聲明打印Term::ReadLine::Stub=ARRAY(0x223d2b8)
。
由於我們在這裏,我注意到它打印提示下劃線...但我無法在文檔中找到任何可以阻止它的東西。有什麼辦法可以避免它?
它爲我(在Debian的Perl 5.10)。你有沒有檢查你的終端鍵盤綁定? – Rob
@Rob,你使用哪一個Term :: ReadLine實現?它在我安裝了Term :: ReadLine :: Gnu後爲我工作,但我認爲它應該已經工作,即使與存根... – Zagorax