【发布时间】:2019-09-13 03:46:38
【问题描述】:
我现在正在使用 Perl 5.24,例如,smartmatch 是一个很棒的多功能运算符,
%foobar ~~ @foo;
以及其中的所有复杂性。
我了解到,从 5.27 起,它的功能将减少到涉及的智能手表,
$foo = qr/foo/;
好的,所以我将不得不重写我的数据管道以使其符合要求。
我的问题是,如果确认两者之间有什么不同,
'foo' ~~ $foo;
和,
'foo' =~ /$foo/;
让我感到震惊的是,除了名称之外,智能匹配正在被删除。我是对的,如果不是,我错过了什么?
历史
它有不寻常的历史,必须强调它被归类为实验性的。我正在绘制我所知道的图表。我想你们中的许多人会知道更多,任何输入都会有所帮助,因为它是语言进化的一个例子(给学生):
- 5.10首发
- 5.14 引入 %foobar ~~ @foo 类型匹配
- 5.27 除名称外全部删除?仍处于实验阶段?
【问题讨论】:
-
5.10.1 对其进行了一些重大更改。 (是的,在 maint 版本中。他们在 smartmatch 方面真的丢球了。)
-
Smartmatch 将从 5.28 中删除——甚至提交了一个补丁——但太多人正在使用这个损坏的功能。前进的道路尚不清楚,但智能匹配目前保持不变(并且随时可能更改/删除)。