Perl 5.42 编程语言可用

经过一年的开发,Perl 编程语言的新稳定分支 5.42 终于发布了。在准备新版本的过程中,我们修改了约 280 万行代码(不包括文档和自动生成的代码,共计 93 万行),这些修改影响了 1500 个文件,共有 64 位开发人员参与了开发。

5.42 分支的发布遵循了十二年前批准的固定开发计划,这意味着每年发布一次新的稳定分支,每三个月发布一次小版本。大约一个月后,Perl 5.42.1 的第一个小版本计划发布,该版本将修复在 Perl 5.42.0 实施过程中发现的最严重的错误。随着 Perl 5.42 的发布,对 5.38 分支的支持已终止,未来只有在发现关键安全问题的情况下才会发布更新。实验性的 5.43 分支的开发即将开始,除非决定切换到 2026.x 版本号,否则 Perl 5.44 的稳定版本将在此基础上于 7 年 XNUMX 月发布。

关键变化:

  • 添加了实验性列表处理运算符——“any { BLOCK } @list”和“all { BLOCK } @list”,它们类似于“grep { BLOCK } @list”运算符,但只能返回 true 或 false。如果条件对列表中的所有元素都成立,“all”运算符返回“true”,如果条件对至少一个元素成立,“any”运算符返回“true”。这些运算符的功能与 List::Util 模块中的函数类似,但内置变体速度更快且内存占用更少。使用 v5.42;使用功能“keyword_all”;无警告“experimental::keyword_all”;my @numbers = … if ( all { $_ % 2 == 0 } @numbers ) { say "All the numbers are even"; }
  • 对于类内部定义的字段,实现了“:writer”属性,该属性用于自动创建将变量值写入类当前实例的字段的方法。class Point {field $x:reader:writer:param;field $y:reader:writer:param;}my $p = Point->new(x => 20, y => 40);$p->set_x(60);
  • 新增了定义词法方法的支持,类似于定义词法子程序(“lexical_subs”),允许您创建仅在其创建块的词法范围内可访问的方法。要创建此类方法,请使用表达式“my method_name”。
  • 新增了“->&”运算符,允许将词法作用域内的例程像方法一样调用。结合定义词法方法的功能,新运算符提供了类似于私有方法的功能。
  • 添加了赋值运算符“A ^^= B”,执行运算“A = A XOR B”。
  • 添加了 pragma“source::encoding”来定义源代码编码。对于 ASCII 码,您可以指定“use source::encoding 'ascii'”(默认);对于 UTF-8,您可以指定“use source::encoding 'utf8′”,这相当于“use utf8”。如果在标记为 ASCII 的代码中遇到 UTF-8 字符,或者在标记为 UTF-8 的代码中使用“\x{}”转义序列,解释器将抛出错误。您可以使用“use no source::encoding”来禁用对部分代码的检查。在实践中,添加的 pragma 可能有助于检测开发人员忘记为 UTF-8 代码指定“use utf8”的情况。
  • chdir() 函数已添加到“CORE::”命名空间。例如,现在可以用“&CORE::chdir($dir)”或“my $ref = \&CORE::chdir; $ref->($dir)”来访问此函数。
  • 添加了“no feature "apostrophe_as_package_separator"”语句,以禁用使用“ ' ”字符作为包名称分隔符的支持(例如,使用“My'Module'Var”而不是“My::Module::Var”)。Perl 5.42 最初打算移除对此类已被弃用的分隔符的支持,但经过讨论后,决定默认保留此功能,但提供禁用选项。
  • 先前已弃用并计划移除的“switch”功能和“~~”运算符现已重新归入功能列表。从 Perl 5.36 和 5.42 开始,将代码链接到不同语言版本时(例如,通过指定“use v5.42”),“switch”和“~~”功能默认处于禁用状态,但可以通过“use feature "switch"”和“use feature "smartmatch"”启用。
  • 添加了对 Unicode 16.0 规范的支持。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster