给定/何时实验的哪些部分?

时间:2012-12-14 19:37:12

标签: perl syntax switch-statement

整个“切换”功能是否已成为实验性的?在没有未来版本的Perl破坏我的代码的情况下,我可以依赖它的部分吗?一般来说,将稳定特征改为实验的政策是什么?

背景

use feature "switch"自5.10以来一直在Perl中。从5.10到5.14,perlsyn似乎表明这是一个稳定的,受支持的功能。

从5.16开始,perlsyn begins to call it“一个实验性切换功能”并且对于被认为是实验的内容更加困惑。

部分文档似乎表明关于该功能的一切是实验性的:

  

在“切换”功能下,Perl获得实验性关键字givenwhendefaultcontinuebreak

甚至还有关于Experimental Details on given and when的整个部分。

但是,perlsyn 表示“foreach是设置局部化程序的非实验性方法”并提供了一个示例,似乎暗示foreach / when不是实验性的。

据我所知,“实验”语言来自commit c2f1e22引用RT #90926,即使与RT# 90906配对,仍然没有提供太多背景信息。

1 个答案:

答案 0 :(得分:5)

  

整个“切换”功能是否已成为实验性的?

没有。它一直都是。

更新:哦,哇,也许我错了。我在5.10.0或.1中找不到这一点。也许不是吗?或许他们忘记注意了?无论哪种方式,它们似乎比我想象的更糟糕!但根据我以后看到的情况,我认为这一教训是学到的。 (例如,我仍然认为values $ref是一个坏主意,但至少它从一天开始就被标记为实验性的 1。)

  

在没有未来版本的Perl破坏我的代码的情况下,我可以依赖它吗?

从技术上讲,不,虽然开发人员在向后兼容性方面始终保持谨慎。

  

总的来说,将稳定功能改为实验的政策是什么?

我没有看到这种情况发生过。将改为使用弃用过程。


到目前为止的变化:

  • given正在从创建词汇$_变为本地化$_,如5.18中的foreach循环(或者它是否已经发生在5.16?)。

    < / LI>
  • 5.10.1看到了智能匹配*的一些重大变化。不要使用(智能匹配)5.10.0。

未来可能的变化:

  • 智能匹配*的行为仍然是一个热门话题。

* - 是的,这是一个与给定时间截然不同的功能,但它在大多数人心目中都是相同或密切相关的。