2

我希望箭头键在 perl 调试器中用于命令历史记录。 这个解决方案看起来不错,所以由于我使用的是 ubuntu,所以我尝试了

sudo aptitude install libterm-readline-gnu-perl

但是,我仍然在 perl 调试器中得到^[[A^[[B回显,而不是上一个/下一个命令。

我发现这在我的环境中是一个特别的问题perlbrew。如果我运行/usr/bin/perl -d箭头键确实可以工作(即,安装仅针对该 perl 修复它)。

如何让调试器在 perlbrew 下工作?

作为最后的努力,在我的 perlbrew 环境中我尝试cpanm Term::ReadLine::Gnu了但得到了错误

找不到 libtermcap.a、libncurses.a 或 libcurses。

我可以开始安装更多的库,但感觉就像我错过了其他东西,因为它只是影响 Perlbrew 的一个问题。

4

2 回答 2

2

通过您的发行版的软件包系统安装的 Perl 模块仅在您的发行版的 perl 中可用(即/usr/bin/perl)。其他 perl 安装(例如那些由 perlbrew 管理的)不受影响。这就是为什么其他 perls 看不到 Term::ReadLine::Gnu。

从 perlbrew 环境(例如通过 cpan 或 cpanm)安装 Term::ReadLine::Gnu 是正确的解决方案。您遇到的错误可能是由于缺少开发标头(Term::ReadLine::Gnu 是 readline C 库的包装器,因此需要构建标头)。尝试安装ncurses-dev(使用 aptitude),然后cpanm再次运行。

于 2016-07-18T19:37:27.720 回答
0

安装 @melpomene 建议的软件包确实可以解决问题。

但是我发现了另一个不需要开发包的解决方案因此,不需要root)。 以下任一 CPAN 软件包均可单独使用:

  • Term::ReadLine::Perl(Readline 库的 Perl 实现)
  • Term::Readline::Zoid( Readline 库的Perl 实现)

由于 Perlbrew 有时(经常?)在您没有 root 的环境中使用,这可能是一个更方便的解决方案。

于 2016-07-19T13:51:34.853 回答