Perl调试器不适用于Perlbrew下的箭头键

时间:2016-07-18 19:09:09

标签: perl arrow-keys perlbrew perldb

我希望箭头键在perl调试器中用于命令历史记录。 This solution看起来不错,所以因为我正在使用ubuntu,所以我尝试了

sudo aptitude install libterm-readline-gnu-perl

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

我发现这是我perlbrew envinronment中的一个问题。如果我运行/usr/bin/perl -d箭头键执行工作(即,安装仅为该perl修复了它)。

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

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

  

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

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

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