perl5281delta - perl v5.28.1 的新增内容
本文档描述了 5.28.0 版本和 5.28.1 版本之间的差异。
如果您要从 5.26.0 等早期版本升级,请先阅读 perl5280delta,其中描述了 5.26.0 和 5.28.0 之间的差异。
当环境变量名称和值的组合长度超过大约 0x7fffffff 时,Perl_my_setenv()
中的整数运算可能会溢出。这可能导致使用攻击者提供的數據写入分配的缓冲区之外。
精心制作的正则表达式可能会在编译期间导致堆缓冲区溢出写入,从而可能允许任意代码执行。
没有故意与 5.28.0 不兼容的更改。如果存在任何不兼容的更改,它们都是错误,我们要求您提交报告。请参阅下面的 "报告错误"。
Module::CoreList 已从版本 5.20180622 升级到 5.20181129_28。
Perl 5.28 在与 -1(或间接地,例如 >= 0)比较时引入了 index()
优化。当此优化在 when
子句中触发时,会导致警告(“参数 %s 在智能匹配中不是数字”)。此问题现已修复。 [GH #16626]
Perl 5.28 中引入的脚本运行中十进制数字的匹配存在一个错误,导致 "1\N{THAI DIGIT FIVE}"
匹配 /^(*sr:\d+)$/
,而它不应该匹配。此问题现已修复。
新的就地编辑代码不再泄漏目录句柄。 [GH #16602]
Perl 5.28.1 代表了自 Perl 5.28.0 以来大约 5 个月的开发,包含了来自 12 位作者的 44 个文件的约 6,100 行更改。
不包括自动生成的代码、文档和发布工具,对 12 个 .pm、.t、.c 和 .h 文件进行了大约 700 行更改。
Perl 凭借其充满活力的用户和开发人员社区,在进入其第四个十年后依然蓬勃发展。以下人员已知为 Perl 5.28.1 的改进做出了贡献。
Aaron Crane、Abigail、Chris 'BinGOs' Williams、Dagfinn Ilmari Mannsåker、David Mitchell、James E Keenan、John SJ Anderson、Karen Etheridge、Karl Williamson、Sawyer X、Steve Hay、Tony Cook。
以上列表几乎肯定是不完整的,因为它是由版本控制历史自动生成的。特别是,它不包括向 Perl 错误跟踪器报告问题的贡献者(非常感谢)的姓名。
本版本中包含的许多更改源自 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。
有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码分发中的 AUTHORS 文件。
如果您发现您认为是错误,您可以在 https://rt.perl.org/ 上查看 perl 错误数据库。您也可以在 https://www.perl5.cn/(Perl 主页)上找到相关信息。
如果您认为您遇到了未报告的错误,请运行随您的发行版一起提供的 perlbug 程序。请务必将您的错误缩减为一个微小但足够的测试用例。您的错误报告以及 perl -V
的输出将发送到 [email protected],由 Perl 移植团队进行分析。
如果您要报告的错误存在安全隐患,不适合发送到公开存档的邮件列表,请参阅 "perlsec 中的 SECURITY VULNERABILITY CONTACT INFORMATION",了解如何报告该问题。
如果您想感谢 Perl 5 移植者在 Perl 5 中所做的工作,您可以运行 perlthanks
程序。
perlthanks
这将向 Perl 5 移植者列表发送一封电子邮件,表达您的感谢。
Changes 文件,了解如何查看有关更改的详尽信息。
INSTALL 文件,了解如何构建 Perl。
README 文件,了解一般信息。
Artistic 和 Copying 文件,了解版权信息。