有没有一个Perl的交互式命令行环境?

4

您好,我想知道是否有类似于Rstudio的Perl工具?能够在不退出脚本的情况下运行命令,并保留所有变量在内存中。

例如,执行命令my $temp = 83;,然后改变值$temp = 22; print "$temp \n";等等,但不结束脚本并继续工作。当处理大型数据集和常规工作流程时,这将非常有帮助。

我找到的最接近的东西是使用插件的Visual Studio Code,在其中我可以执行特定代码块的脚本。但是我没有找到一种方法可以将变量持久保存在内存中。
谢谢!


4
我使用 perl -C -dwE 1 命令来调用交互式 Perl 调试器,但它有点简陋。例如,my $x = 42 在下一行不会被记住。去掉 my 关键字就能正常工作。 - Keith Thompson
1个回答

10

你需要一个REPL

看一下Devel::REPL。它带有一个名为re.pl的脚本,可以运行。

$ re.pl
$ my $foo = 123;
123$ use feature 'say';
$  $foo + 1;
124$ 

一个更新的替代方案是Reply和它的reply脚本。


$ reply 
0> my $foo = 123;
$res[0] = 123

1> $foo + 2
$res[1] = 125

2> 

作为比较,您可以阅读Matt Trout的这篇博客文章


遗憾的是,Devel::REPLReply都没有在积极开发中。两者的最后一个稳定版本都已经超过四年了。这就是代码腐烂的表现,朋友们。 - Cecil Curry
@CecilCurry 很好地自愿了! :) // 但公平起见,它们两个都很稳定。你并不总是需要不断开发东西。 - simbabque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接