当前位置:  开发笔记 > 编程语言 > 正文

如何为Perl启动交互式控制台?

如何解决《如何为Perl启动交互式控制台?》经验,为你挑选了14个好方法。

如何为Perl启动交互式控制台,类似于irbRuby或pythonPython 的命令?



1> Daniel Papas..:

您可以在一个简单的程序上使用perl调试器,如下所示:

perl -de1

另外还有Alexis Sukrieh的Perl控制台应用程序,但我还没有使用它.


如果你想要最小化的东西可以考虑添加[rlwrap](http://linux.die.net/man/1/rlwrap)` $ rlwrap perl -d -e 1`你会得到历史和一致的提示
不幸的是,`perl -de1`似乎不支持`my`变量,而哈希也不起作用,出于某种原因......

2> Dave Rolsky..:

Matt Trout不仅写了一篇关于REPL的文章,他还写了一篇--Devel :: REPL

我已经使用了一下它运行得相当好,而且它正在积极开发中.

顺便说一句,我不知道为什么有人对控制台上使用"perl -e"提到的人进行了修改.这不是真正的REPL,是真的,但它非常有用,而且我一直都在使用它.



3> raldi..:

我写了一个我称之为"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


这是仅适用于一个内衬还是可以处理多行Perl代码,如条件分支,循环,嵌套语句?

4> Ján Sáreník..:

如果您需要历史记录,请使用rlwrap.这可能是你~/bin/ips的例子:

#!/bin/sh
echo 'This is Interactive Perl shell'
rlwrap -A -pgreen -S"perl> " perl -wnE'say eval()//$@'

这就是它的样子:

$ ips
This is Interactive Perl shell
perl> 2**128
3.40282366920938e+38
perl> 


感谢它很好地包装它 - 不仅需要readline支持历史记录,还需要编辑命令行.除了多线支持外,这种方法效果很好; 这里是一个别名版本作为替代:`alias iperl ='rlwrap -A -S"perl>"perl -wnE'\''说eval()// $ @'\'`.OSX用户可以通过[Homebrew](http://brew.sh)使用`brew install rlwrap`安装`rlwrap`.

5> 小智..:

我想你要问perl的REPL(读,评估,打印,循环)接口.有几种方法可以做到这一点:

Matt Trout有一篇文章描述了如何编写一个

阿德里亚诺·费雷拉描述了一些选择

最后,你可以在irc.perl.org上跳过IRC并在许多热门频道中试用一个评估机器人.他们将评估你传递给他们的perl块.



6> Jon Ericson..:

我使用命令行作为控制台:

$ perl -e 'print "JAPH\n"'

然后我可以使用我的bash历史来恢复旧命令.但是,这并不保留状态.

当您想要测试"一件小事"时(例如回答Perl问题时),此表单最有用.通常,我发现这些命令被逐字删除到shell脚本或makefile中.



7> Frank Wiles..:

没有像Python那样内置Perl的交互式控制台.但是,您可以使用Perl调试器来调试相关的事情.你用-d选项打开它,但你可能想看看'man perldebug'来了解它.

经过一些谷歌搜索,有一个单独的项目,实现了你可以找到的Perl控制台 http://www.sukria.net/perlconsole.html.

希望这可以帮助!



8> Clinton Pier..:

您可以随时进入内置调试器并从那里运行命令.

   perl -d -e 1



9> Eric Johnson..:

有两种流行的Perl REPL.
1.开发:: REPL很棒.
但IMO 答复更好.


+1用于推荐回复.当我在IRC上询问一个好的Perl REPL(控制台)时,Devel :: REPL的作者自己建议回复它自己的解决方案.回复还附带自动完成功能,非常便于检查对象的可用方法和属性.我可以使用以下命令在Ubuntu上安装Reply:`sudo apt-get install libreply-perl`.然后只需在终端输入`reply`即可运行.

10> mklement0..:

我创建perli了一个在Linux,macOS和Windows上运行的Perl REPL.

它的重点是自动结果打印,方便的文档查找以及对常规表达式匹配的轻松检查.
你可以在这里看到截图.

独立工作(没有Perl本身以外的依赖项),但强烈建议安装rlwrap以支持命令行编辑,持久命令历史记录和制表符完成 - 请在此处阅读更多内容.

安装

如果您碰巧安装了Node.js:

npm install -g perli

除此以外:

Unix的样平台:下载这个脚本是perli在你的系统路径的文件夹,并使其可执行文件chmod +x.

视窗:下载这个脚本为perli.pl(注意.pl扩展名)在系统中的路径的文件夹.
如果你不介意调用Perli perli.pl,那么你已经完成了.
否则,perli.cmd使用以下内容创建在同一文件夹中命名的批处理文件:@%~dpn.pl %*; 这使得调用成为公正perli.



11> Brian Philli..:

perl -d 是你的朋友:

% perl -de 0



12> 小智..:

来自Devel :: REPL的re.pl



13> ysth..:

我一直这样做:

rlwrap perl -wlne'eval;print$@if$@'

使用5.10,我切换到:

rlwrap perl -wnE'say eval()//$@'



14> KIM Taegyoon..:

读取 - 评估 - 打印循环:

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

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有