Python 提供了一个交互式解释器,允许通过向控制台提交几行代码来评估小代码片段。我想知道 Perl 是否也存在具有类似功能的工具(例如,包括可通过箭头键访问的历史记录)?
那里似乎有各种各样的解决方案,但我似乎找不到任何好的建议。即提到了很多工具,但我对人们实际使用哪些工具以及为什么使用感兴趣。perl -d -e 1
那么,除了标准的 perl 调试( )之外,您有什么好的建议吗?
以下是我看过的一些有趣的页面:
Python 提供了一个交互式解释器,允许通过向控制台提交几行代码来评估小代码片段。我想知道 Perl 是否也存在具有类似功能的工具(例如,包括可通过箭头键访问的历史记录)?
那里似乎有各种各样的解决方案,但我似乎找不到任何好的建议。即提到了很多工具,但我对人们实际使用哪些工具以及为什么使用感兴趣。perl -d -e 1
那么,除了标准的 perl 调试( )之外,您有什么好的建议吗?
以下是我看过的一些有趣的页面:
perl -d -e 1
非常合适,我多年来一直在使用它。但如果你不能,那么你可以查看Devel::REPL
如果您的问题perl -d -e 1
是它缺少命令行历史记录,那么您应该安装Term::ReadLine::Perl
调试器将在安装时使用的那个。
即使这个问题有很多答案,我还是会在这个话题上加两分钱。如果您是ViM用户,我解决问题的方法很简单,但我想也可以从其他编辑器中完成:
打开你的 ViM,然后输入你的代码。您无需将其保存在任何文件中。
:w !perl
用于评估(:w !COMMAND
将缓冲区通过管道传输到运行获得的进程COMMAND
。在这种情况下,强大的perl
解释器!)
看看输出
这种方法适用于任何解释语言,而不仅仅是 Perl。
在 Perl 的情况下,当您编写自己的模块时非常方便,因为根据我的经验,perl
解释器将拒绝重新加载模块(即使尝试加载但失败)。不利的一面是,您每次都会丢失所有上下文,因此,如果您正在执行一些繁重或缓慢的操作,则需要保存一些中间结果(而perl 控制台方法会保留先前计算的数据)。
如果您只需要对表达式求值——这是 perl 控制台程序的另一个用例——另一个不错的选择是从perl -e
命令中查看求值。它的启动速度很快,但你必须处理转义(对于这件事$'...'
,Bash 的语法做得很好。
只需用于获取历史记录和箭头:
rlwrap perl -de1