【问题标题】:Perl - How do you type/execute/run Perl statements directly in the Perl shell/interpreter?Perl - 你如何直接在 Perl shell/解释器中输入/执行/运行 Perl 语句?
【发布时间】:2021-09-20 01:16:20
【问题描述】:

您如何直接在 Perl shell/解释器中键入和(执行/运行) Perl 语句?

首先,我在 Windows 上...我安装了为 MSWin32-x64-multi-thread 构建的 Strawberry Perl (v5.32.1)。

所以,如果我在命令行输入,只需:

perl

...它似乎进入了 Perl “shell/interpreter”,但如果我输入一些 Perl 语句:

my $greeting = "Hello World :-)\n";
print($greeting);

...我如何使它然后“执行/运行”这两个语句?

如果我 Ctrlc,那么它只会说:Terminating on signal SIGINT(2)

如果这很重要,我想这样做的原因是我可以在学习 Perl 时测试 Perl 语言。

【问题讨论】:

  • 试试 Ctrl+Z,它应该是 MSWin 上的文件结尾(Ctrl+D 在 *nix 上)。或输入__END__
  • re.pl 附带一个 Devel::REPL 脚本,您可能会觉得很方便。
  • 请记住,perl 不是 REPL。它是 Perl 编译器,所以它需要一个完整的程序。你不能逐行运行。即时运行内容的最简单方法是使用 IDE 并配置快捷方式来运行当前文件。在 VSCode 上,我使用 code runner。或者你可以保存Alt+Tabupenter在终端重新运行。
  • 你可以直接运行 perl 代码:perl -we"print qq(Hello world!\n)"
  • 在Windows cmd中,需要用双引号将代码括起来。因此,您需要将qq() 用于双引号字符串。我相信人们很少使用 shell 解释,例如人们对 python 使用的解释。

标签: perl command-line-interface


【解决方案1】:

您可以使用调试器获取 REPL:

$ perl -d -e 1

Loading DB routines from perl5db.pl version 1.49
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(-e:1):   1
  DB<1> x "blah" x 5
0  'blahblahblahblahblah'

使用x expressionp expression 计算表达式并以不同方式显示结果。

【讨论】:

【解决方案2】:

您可以只使用所谓的单行 (*) 并将代码直接输入到 shell 中。这是测试 Perl 语句的惯用方式:

perl -we"my $greeting = qq(Hello World :-)\n); print $greeting;"

请注意,在 Windows cmd shell 中,您需要用双引号将代码括起来,因此您在代码中使用 qq() 作为双引号字符串。

我总是在命令行上使用-l 开关,这样我就不必添加行尾来打印:

perl -lwe"my $greeting = 'Hello World :-)'; print $greeting;"

您也可以考虑使用-Esay,它们也会添加一个换行符:

perl -wE"say 'Hello world :-)'"

您甚至可以在某些 shell 中使用多行代码,但在 Windows 中则不行。

(*) = 不要被“单线”这个词所迷惑。这不是您可以使用的语句数量,这只是一种命名“一行”语句的方法。在 Perl 中,您可以根据需要在一行中添加多个语句。

【讨论】:

  • ...或者如果你愿意,你甚至可以使用多行,如果 shell 允许的话。 (cmd 没有)
【解决方案3】:

输入Ctrl + Z(最后还是需要Enter)对应Ctrl + D 在 *nix 上,表示 文件结束。也可以输入__END__

【讨论】:

    猜你喜欢
    • 2016-09-29
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2014-02-09
    • 2011-01-04
    • 2013-04-16
    • 2011-04-19
    • 2021-08-28
    相关资源
    最近更新 更多