Как я могу создать оболочку с историей в моей программе Perl? - PullRequest
4 голосов
/ 27 января 2010

Я пишу инструмент, который выполняется в Perl как оболочка. Я хочу, чтобы у него была история, поэтому, если вы нажмете стрелку вверх, вы вернетесь к предыдущей команде, как bash или другие оболочки. Как мне поступить об этом?

- РЕДАКТИРОВАТЬ -

Спасибо Даксиму за то, что он указал мне на 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.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

В настоящее время я пробираюсь через результаты Google по этой проблеме, но если кто-то видел это раньше и имеет указатели, это было бы очень признательно. Спасибо!

Ответы [ 2 ]

3 голосов
/ 27 января 2010

Term :: ReadLine :: Gnu - лучший модуль для этого, Term :: ReadLine :: Perl запасной вариант.

1 голос
/ 27 января 2010

Term :: ReadLine взаимодействует с различными пакетами readline и, таким образом, будет поддерживать историю, как вы описываете.

...