如何启动Perl的交互式控制台,类似于Ruby的irb命令或python的python命令?
当前回答
我写了一个脚本,我称之为“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
其他回答
Read-eval-print循环:
$ perl -e'while(<>){print eval,"\n"}'
Matt Trout不仅写了一篇关于REPL的文章,他实际上也写了一篇——Devel::REPL
我曾经使用过它,它工作得相当好,并且正在积极开发中。
顺便说一句,我不知道为什么有人贬低了那个提到从控制台使用“perl -e”的人。这不是一个真正的REPL,但它非常有用,我一直在使用它。
你可以在网上做这件事(就像生活中的许多事情一样):
https://www.tutorialspoint.com/execute_perl_online.php
我总是这样做:
rlwrap perl -wlne'eval;print$@if$@'
使用5.10,我已经切换到:
rlwrap perl -wnE'say eval()//$@'
(rlwrap是可选的)
Perl没有控制台,但是调试器可以作为控制台使用。在命令提示符下,键入perl -de 1。(值“1”无关紧要,它只是一个没有任何作用的有效语句。)
Perl shell也有几个选项: 存档的“perlfaq3”页面,其中包含问题“有Perl Shell吗?”
有关更多信息,请阅读perlfaq3(当前版本)。
推荐文章
- console.log()和console.debug()的区别?
- 如何禁用标准错误流的日志记录?
- 在Perl中,“my”和“our”的区别是什么?
- 为什么“System.out。”println“工作在Android?
- 如何在保持原始字符串的同时对字符串执行Perl替换?
- 如何在Visual c++中保持控制台窗口打开?
- Perl的@INC是如何构造的?(又名:影响Perl模块搜索位置的所有方法是什么?)
- 如何停止c++控制台应用程序从退出立即?
- 从输出中删除颜色
- Chrome: console.log, console.debug不工作
- 访问控制台和扩展的后台开发工具
- 将Chrome中的console.log保存为文件
- 清除javascript控制台在谷歌Chrome
- 安装缺少的Perl模块最简单的方法是什么?
- 我如何才能快速和所有的数字在一个文件?