我通常perl -de 42用于获取交互式Perl shell.我见过 Devel :: REPL,我看过一些像http://www.xenoterracide.com/2010/07/making-repl-usable.html这样的博客, 解释了如何Devel::REPL使用插件进行增强,但我还没有使用过.
将调试器用作交互式shell是否太糟糕了?为什么?
注意:此PerlMonks节点中提到的缺点是用户的限制,而不是Perl调试器的限制.
我在哪里可以阅读有关Perl REPL的更多信息?
Devel :: REPL是否准备好迎接风头?
更新: 我接受了Pedro的答案,因为它回答了我问的问题,但我仍然想知道何时以及为什么(如果有的话)使用Perl调试器作为交互式shell与其中一个Perl相比是一个坏主意REPL实现.您更喜欢哪种Perl REPL?
一个缺点perl -d是词汇变量立即超出范围.例:
DB<1> my $p = 123;
DB<2> print $p;
DB<3>
Run Code Online (Sandbox Code Playgroud)
来自perldebug:
注意,所述eval受隐式范围的约束.因此,在eval之后,任何新引入的词法变量或任何修改的捕获缓冲区内容都将丢失.调试器是一个学习Perl的好环境,但是如果你使用应该在同一范围内的材料进行交互式实验,那么将它放在一个linecope中,将它填入一行.