如何在Perl程序中创建具有历史记录的shell?

时间:2010-01-27 00:38:38

标签: perl shell history

我正在编写一个在Perl中作为shell执行的工具。我希望它有一个历史记录,所以如果你按向上箭头,你会回到上一个命令,就像bash或其他shell一样。我应该怎么做呢?

- 编辑 -

感谢daxim将我指向Term :: ReadLine :: Gnu。我能够让它在我的Linux机器上工作,这正是我想要的。但是,我的主要开发机器正在运行OS X.当我尝试安装模块时,我收到此错误:

~/Downloads/Term-ReadLine-Gnu-1.19 > perl Makefile.PL 
Found `/usr/lib/libtermcap.dylib'.
gcc-4.2  -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include -        DHAVE_STRING_H rlver.c -o rlver   -arch i386 -arch ppc -L/usr/local/lib -lreadline -ltermcap
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
The libreadline you are using is the libedit library.  Use the GNU Readline Library.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

我目前正在通过谷歌搜索结果来解决这个问题,但是如果有人之前已经看过这个并且有指针,那将非常感激。谢谢!

2 个答案:

答案 0 :(得分:3)

Term::ReadLine::Gnu是最好的模块,Term::ReadLine::Perl后备。

答案 1 :(得分:1)

Term::ReadLine与各种readline包的接口,因此将支持您描述的历史记录。