热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PerlCORE::说vs-E

如何解决《PerlCORE::说vs-E》经验,为你挑选了1个好方法。



1> ikegami..:

feature.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,程序的行为就不会改变.具体而言,1205.24中的以下输出:

perl -e'sub fc { my $acc=1; $acc*=$_ for 2..$_[0]; $acc } CORE::say fc(5);'


推荐阅读
author-avatar
被撑死的猫。。。
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有