如何启动Perl的交互式控制台,类似于Ruby的irb命令或python的python命令?


当前回答

Matt Trout的概述列出了五个选择,从perl -de 0开始,如果通过插件扩展是重要的,他推荐Reply,或者Eval::WithLexicals的tinyrepl,这是一个最小的、纯perl的解决方案,包括readline支持和词汇持久性。

其他回答

Read-eval-print循环:

$ perl -e'while(<>){print eval,"\n"}'

Matt Trout不仅写了一篇关于REPL的文章,他实际上也写了一篇——Devel::REPL

我曾经使用过它,它工作得相当好,并且正在积极开发中。

顺便说一句,我不知道为什么有人贬低了那个提到从控制台使用“perl -e”的人。这不是一个真正的REPL,但它非常有用,我一直在使用它。

Perl -d是你的朋友:

% perl -de 0

您可以直接进入内置调试器并从那里运行命令。

   perl -d -e 1

我写了一个脚本,我称之为“psh”:

#! /usr/bin/perl

while (<>) {
  chomp;
  my $result = eval;
  print "$_ = $result\n";
}

不管你输入什么,它都会在Perl中计算:

> gmtime(2**30)
gmtime(2**30) = Sat Jan 10 13:37:04 2004

> $x = 'foo'
$x = 'foo' = foo

> $x =~ s/o/a/g
$x =~ s/o/a/g = 2

> $x
$x = faa