5

perl 开关“-E”和“-e”有何不同?在这个例子中,它们的工作方式完全相同——在切换之后执行命令:

$ perl -e 'print "$_\n" foreach 1..2'
1
2
$ perl -E 'print "$_\n" foreach 1..2'
1
2
4

3 回答 3

11

这在中解释perldoc perlrun

-E 命令行
的行为就像-e一样,除了它隐式启用所有可选功能(在主编译单元中)。见功能。

“查看功能”。指featurepragma 的文档,您可以通过键入来阅读perldoc feature

于 2013-10-14T05:56:58.307 回答
7

-E不像-e启用功能

您可以检查这些正在使用什么Deparse模块(以下是 perl 5.16),

perl -MO=Deparse -E 1
use feature 'current_sub', 'evalbytes', 'fc', 'say', 'state', 'switch', 'unicode_strings', 'unicode_eval';
于 2013-10-14T06:20:22.207 回答
3

来自 Perldoc:http://perldoc.perl.org/perlrun.html

•-e 命令行:

可用于输入一行程序。如果给出 -e,Perl 将不会在参数列表中查找文件名。可以给出多个 -e 命令来构建多行脚本。确保在正常程序中使用分号。

•-E 命令行

行为就像 -e,除了它隐式启用所有可选功能(在主编译单元中)。见特征

于 2013-10-14T05:57:28.677 回答