整个“切换”功能是否已成为实验性的?在没有未来版本的Perl破坏我的代码的情况下,我可以依赖它的部分吗?一般来说,将稳定特征改为实验的政策是什么?
use feature "switch"
自5.10以来一直在Perl中。从5.10到5.14,perlsyn
似乎表明这是一个稳定的,受支持的功能。
从5.16开始,perlsyn
begins to call it“一个实验性切换功能”并且对于被认为是实验的内容更加困惑。
部分文档似乎表明关于该功能的一切是实验性的:
在“切换”功能下,Perl获得实验性关键字
given
,when
,default
,continue
和break
。
甚至还有关于Experimental Details on given and when的整个部分。
但是,perlsyn
也表示“foreach
是设置局部化程序的非实验性方法”并提供了一个示例,似乎暗示foreach / when不是实验性的。
据我所知,“实验”语言来自commit c2f1e22引用RT #90926,即使与RT# 90906配对,仍然没有提供太多背景信息。
答案 0 :(得分:5)
整个“切换”功能是否已成为实验性的?
没有。它一直都是。
更新:哦,哇,也许我错了。我在5.10.0或.1中找不到这一点。也许不是吗?或许他们忘记注意了?无论哪种方式,它们似乎比我想象的更糟糕!但根据我以后看到的情况,我认为这一教训是学到的。 (例如,我仍然认为values $ref
是一个坏主意,但至少它从一天开始就被标记为实验性的
1。)
在没有未来版本的Perl破坏我的代码的情况下,我可以依赖它吗?
从技术上讲,不,虽然开发人员在向后兼容性方面始终保持谨慎。
总的来说,将稳定功能改为实验的政策是什么?
我没有看到这种情况发生过。将改为使用弃用过程。
到目前为止的变化:
given
正在从创建词汇$_
变为本地化$_
,如5.18中的foreach循环(或者它是否已经发生在5.16?)。
5.10.1看到了智能匹配*的一些重大变化。不要使用(智能匹配)5.10.0。
未来可能的变化:
* - 是的,这是一个与给定时间截然不同的功能,但它在大多数人心目中都是相同或密切相关的。