gpt4 book ai didi

Perl 5.20 与智能匹配和给定时间的命运

转载 作者:行者123 更新时间:2023-12-03 05:37:39 25 4
gpt4 key购买 nike

我刚刚安装了 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 [...].

研究这些警告 - 我从未在任何地方听到过提及 - 我只能在两个地方找到它,

Perl Delta 仍然最多地提及这些功能的进展情况。它一半埋在 pods 里,

Smart match, added in v5.10.0 and significantly revised in v5.10.1, has been a regular point of complaint. Although there are a number of ways in which it is useful, it has also proven problematic and confusing for both users and implementors of Perl. There have been a number of proposals on how to best address the problem. It is clear that smartmatch is almost certainly either going to change or go away in the future. Relying on its current behavior is not recommended. Warnings will now be issued when the parser sees ~~, given, or when.

我很困惑 Perl 过去 10 年来最重大的变化是如何实现的。我开始到处使用 givenwhensmartmatch。有关于这些 future 的更多信息吗?怎么有人觉得它们“令人困惑”?这些功能可能会发生怎样的变化?是否有计划用模块来实现这些功能?

最佳答案

智能匹配的设计存在问题。任何给定的 TYPE ~~ TYPE 应该做什么的决定通常是不明显的、不一致的和/或有争议的。这个想法并不是要取消智能匹配;而是要取消智能匹配。是为了修复它。

[更新:在 5.38 的发行说明中,宣布智能匹配将从 Perl 5.42 中完全删除。以下预测不再准确。]

具体来说,~~ 将被大大简化,正如您在 proposal 中看到的那样5.18 抽水。关于两个事物应该如何匹配的决定将由帮助程序完成,例如 Smart::Match 中已经存在的帮助程序。 .

... ~~ any(...)

它更具可读性,更灵活(完全可扩展),并解决了许多问题(例如“何时应将 X 视为数字,何时应将其视为字符串?”)。

关于Perl 5.20 与智能匹配和给定时间的命运,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16927024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com