perl5141delta - perl v5.14.1 的新功能
本文档描述了 5.14.0 版本和 5.14.1 版本之间的差异。
如果您要从较早的版本(例如 5.12.0)进行升级,请先阅读 perl5140delta,其中描述了 5.12.0 和 5.14.0 之间的差异。
自 5.14.0 以来无更改。
自 5.14.0 以来无更改。
没有与 5.14.0 故意不兼容的更改。如果存在,则为错误,欢迎报告。
自 5.14.0 以来没有弃用。
无
B::Deparse 已从版本 1.03 升级到 1.04,以解决 Perl 5.14.0 中的两个回归。
glob
运算符及其菱形 (<>
) 形式的解析现在再次起作用。[perl #90898]
名为 ::::
或 ::::::
的子例程不再导致 B::Deparse 挂起。
Pod::Perldoc 已从版本 3.15_03 升级到 3.15_04。
它更正了 VMS 上的搜索路径。[perl #90640]
无
无
given
、when
和 default
现在列在 perlfunc 中。
use
的文档现在包含指向 if.pm 的指针。
perllol 已扩展,其中包含使用 Perl 5.14.0 中引入的新 push $scalar
语法的示例。
位运算符的解释已扩展,以说明它们如何在 Unicode 字符串上工作。
关于三点或 yada-yada 运算符的部分已向上移动,因为它过去将有关逗号运算符的两个紧密相关的部分分开。
已添加更多 m//g
的示例。
已记录 <<\FOO
here-doc 语法。
perlrun 已经过重大清理。最值得注意的是,-0 标志的 -0x... 形式已经得到澄清,并且环境变量的最后一部分已经得到纠正和扩展。
WIFEXITED
、WEXITSTATUS
、WIFSIGNALED
、WTERMSIG
、WIFSTOPPED
和 WSTOPSIG
的调用文档已经得到纠正。
已经对诊断输出(包括警告和致命错误消息)进行了以下添加或更改。有关诊断消息的完整列表,请参阅 perldiag。
无
无
无
regexp.h 已经过修改,以与 GCC 的 -Werror
选项兼容,该选项由包含 Perl 头文件的某些项目使用。
dist/Locale-Maketext/t/09_compile.t 中的一些测试失败(可能会根据环境而发生)已经得到修复。[perl #89896]
t/re/re.t 的看门狗计时器已经延长,以适应在旧计时器用完之前无法完成测试的 SH-4 系统。
无
无
列出在 Solaris 9 和 Solaris 10 上构建 Perl 所需的 Solaris 软件包的文档已经得到纠正。
lib/locale.t 测试脚本已经更新,以便在即将推出的 Lion 版本上运行。
已经澄清了特定于 Mac OS X 的编译说明。
ODBM_File 安装过程已经使用 Ubuntu Natty 上的新库路径进行更新。
格式的编译表示形式现在通过其 PERL_MAGIC_fm 的 mg_ptr 存储。以前它存储在字符串缓冲区中,超出 SvLEN(),即字符串的常规结尾。SvCOMPILED() 和 SvCOMPILED_{on,off}() 现在仅为 XS 代码的兼容性而存在。第一个始终为 0,其他两个现在为无操作。
修复了一个错误,该错误会导致在要迭代的下一个两个哈希元素被删除时出现“在迭代中使用已释放的值”错误。[perl #85026]
将相同的常量子例程同时传递给 index
和 formline
不再导致其中一个或另一个失败。[perl #89218]
5.14.0 在正则表达式字符类别(如 [\w\s]
)中引入了一些内存泄漏,现在已修复。
正则表达式匹配中的边缘情况可能会循环。这仅在带有多字符折叠的字符的括号字符类别中的 /i
下发生,并且要匹配的目标字符串包括折叠的第一部分,后跟另一个字符,该字符具有以折叠的剩余部分开头的多字符折叠,以及更多内容。
"s\N{U+DF}" =~ /[\x{DF}foo]/i
是一个这样的例子。\xDF
折叠为 "ss"
。
已修复几个 Unicode 大小写折叠错误。
5.14.0 中新的正则表达式修饰符 /a
在重复时(如 /aa
)禁止 ASCII 范围之外的字符与该范围内的字符匹配,从而无法在 /i
下匹配。在某些情况下,这不起作用,所有这些情况都涉及交替,例如
"\N{KELVIN SIGN}" =~ /k|foo/iaa;
不恰当地成功了。现在已修复。
修复了一种情况,即在解析 here 文档时可能会从已释放的缓冲区中读取。
Perl 5.14.1 代表自 Perl 5.14.0 以来大约四星期的开发,包含来自 17 位作者的 38 个文件中的大约 3500 行更改。
Perl 在其第三个十年中继续蓬勃发展,这要归功于充满活力的用户和开发人员社区。已知以下人员为 Perl 5.14.1 的改进做出了贡献
Bo Lindbergh、Claudio Ramirez、Craig A. Berry、David Leadbeater、Father Chrysostomos、Jesse Vincent、Jim Cromie、Justin Case、Karl Williamson、Leo Lapworth、Nicholas Clark、Nobuhiro Iwamatsu、smash、Tom Christiansen、Ton Hospel、Vladimir Timofeev 和 Zsbán Ambrus。
如果您发现您认为是一个错误,您可以查看最近发布到 comp.lang.perl.misc 新闻组和 perl 错误数据库 http://rt.perl.org/perlbug/ 的文章。Perl 主页 https://www.perl5.cn/ 上也可能会有信息。
如果您认为自己有一个未报告的错误,请运行发行版中包含的 perlbug 程序。务必将错误精简为一个微小但足够小的测试用例。您的错误报告以及 perl -V
的输出将被发送到 [email protected],供 Perl 移植团队分析。
如果您报告的错误具有安全影响,不适合发送到公开存档的邮件列表,请将其发送到 [email protected]。这指向一个封闭的订阅未存档的邮件列表,其中包括所有核心提交者,他们能够帮助评估问题的影响,找出解决方案,并帮助协调发布补丁以减轻或修复所有支持 Perl 的平台上的问题。请仅将此地址用于 Perl 核心中的安全问题,而不是用于 CPAN 上独立分发的模块。
更改文件,说明如何查看已更改内容的详尽详细信息。
安装文件,说明如何构建 Perl。
自述文件,用于一般内容。
艺术和复制文件,用于版权信息。