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