8

Python 提供了一个交互式解释器,允许通过向控制台提交几行代码来评估小代码片段。我想知道 Perl 是否也存在具有类似功能的工具(例如,包括可通过箭头键访问的历史记录)?

那里似乎有各种各样的解决方案,但我似乎找不到任何好的建议。即提到了很多工具,但我对人们实际使用哪些工具以及为什么使用感兴趣。perl -d -e 1那么,除了标准的 perl 调试( )之外,您有什么好的建议吗?

以下是我看过的一些有趣的页面:

4

4 回答 4

7
   perl -d -e 1

非常合适,我多年来一直在使用它。但如果你不能,那么你可以查看Devel::REPL

于 2013-05-29T16:09:10.420 回答
6

如果您的问题perl -d -e 1是它缺少命令行历史记录,那么您应该安装Term::ReadLine::Perl调试器将在安装时使用的那个。

于 2013-05-29T18:14:55.027 回答
4

即使这个问题有很多答案,我还是会在这个话题上加两分钱。如果您是ViM用户,我解决问题的方法很简单,但我想也可以从其他编辑器中完成:

  1. 打开你的 ViM,然后输入你的代码。您无需将其保存在任何文件中。

  2. :w !perl用于评估(:w !COMMAND将缓冲区通过管道传输到运行获得的进程COMMAND。在这种情况下,强大的perl解释器!)

  3. 看看输出

这种方法适用于任何解释语言,而不仅仅是 Perl。

在 Perl 的情况下,当您编写自己的模块时非常方便,因为根据我的经验,perl解释器将拒绝重新加载模块(即使尝试加载但失败)。不利的一面是,您每次都会丢失所有上下文,因此,如果您正在执行一些繁重或缓慢的操作,则需要保存一些中间结果(而perl 控制台方法会保留先前计算的数据)。

如果您只需要对表达式求值——这是 perl 控制台程序的另一个用例——另一个不错的选择是从perl -e命令中查看求值。它的启动速度很快,但你必须处理转义(对于这件事$'...',Bash 的语法做得很好。

于 2015-09-17T11:28:47.377 回答
0

只需用于获取历史记录和箭头:

rlwrap perl -de1
于 2018-02-23T17:20:24.380 回答