我刚刚安装了 Perl 5.18,我收到了很多这样的警告,
given is experimental at .\[...].pl line [...].
when is experimental at .\[...].pl line [...].
Smartmatch is experimental at C:/strawberry/perl/site/lib/[...] line [...].
调查这些警告——我从未听说过在任何地方提到过——我只能在两个地方找到这个,
- perldelta for 5.18,仅真正提到该功能已降级为实验性?
- 这个 nntp.perl.org 帖子
Perl Delta 仍然最常提及这些功能正在发生的事情。它半埋在吊舱里,
智能匹配,在 v5.10.0 中添加并在 v5.10.1 中进行了重大修改,一直是投诉点。尽管它有很多有用的方式,但它也被证明对于 Perl 的用户和实现者来说是有问题的和令人困惑的。关于如何最好地解决这个问题,已经提出了许多建议。很明显,smartmatch 几乎肯定会在未来改变或消失。不建议依赖其当前行为。现在,当解析器看到 ~~、given 或 when 时,将发出警告。
我很困惑 Perl 在过去 10 年中最重大的变化是如何被取消的。我已经开始在各处使用given
,when
和。smartmatch
有没有关于这些期货的更多信息?怎么会有人觉得它们“令人困惑”?这些特征可能会发生怎样的变化?是否有计划通过模块来实现这些功能?