首页 > 解决方案 > Perl 有交互式命令行环境吗?

问题描述

嗨,我想知道 Perl 是否有类似于 Rstudio 的东西?那就是能够运行命令,在不退出脚本的情况下将所有变量保留在内存中。

例如说我执行了这个命令my $temp = 83;,然后我改变了值$temp = 22; print "$temp \n";等等,而不是结束脚本,但我没有结束脚本并继续处理它。在处理大型数据集和一般工作流程时,这将非常有用。我遇到的最接近的事情是使用插件的 Visual Studio Code,我可以在我的脚本中执行特定的代码块。但是我没有找到将变量持久保存在内存中的方法。
谢谢!

标签: perlread-eval-print-loop

解决方案


你想要一个REPL

看看Devel::REPL。它带来了一个名为re.pl您可以运行的脚本。

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

较新的替代方法是使用其脚本回复。reply

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

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

2> 

为了进行比较,您可以阅读Matt Trout 的这篇博文。


推荐阅读