In 这个答案使用 Perl 单行代码作为:
perl -we '... CORE::say "x=$x"'
使用有什么好处-e
and CORE::say
而不是较短的:-E
和朴素的say
, e.g.:
perl -wE '... say "x=$x"'
专题.pm引入是为了允许将向后不兼容的功能添加到 Perl 中。-E
启用所有向后不兼容的功能,这意味着程序使用-E
如果升级可能会损坏perl
.
perl -E'... say "foo"; ...' # Forward-incompatible (5.10+)
perl -Mfeature=say -e'... say "foo"; ...' # ok (5.10+)
perl -Mv5.10 -e'... say "foo"; ...' # ok (5.10+)
perl -M5.010 -e'... say "foo"; ...' # ok (5.10+)
perl -e'... CORE::say "foo"; ...' # ok (5.16+)
例如,假设您在 2010 年编写了以下程序:
perl -E'sub fc { my $acc=1; $acc*=$_ for 2..$_[0]; $acc } say fc(5);'
使用 2010 年最新的 Perl (5.12),程序输出以下内容:
120
使用 2016 年最新的 Perl (5.24),程序输出以下内容:
5
差异是由于 5.16 中添加了一项功能,该功能在启用时会更改该程序的含义。如果人们避免使用-E
,程序的行为不会改变。具体来说,输出如下120
在 5.24 中:
perl -e'sub fc { my $acc=1; $acc*=$_ for 2..$_[0]; $acc } CORE::say fc(5);'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)