perl586delta - perl v5.8.6 的新特性
本文档描述了 5.8.5 版本和 5.8.6 版本之间的差异。
与 5.8.5 版本没有不兼容的更改。
perl 解释器现在对 UTF-16 编码的脚本更加容忍。
在 Win32 上,Perl 现在可以使用非 IFS 兼容的 LSP,这使得 Perl 可以与 McAfee Guardian 等防火墙协同工作。有关完整详细信息,请参阅 README.win32 文件,特别是如果您运行的是 Win95。
使用 base
编译指示时,一个没有字段的中间类以前会弄乱基类中的私有字段。这个问题已经修复。
Cwd 升级到 3.01 版本(作为新的 PathTools 发行版的一部分)
Devel::PPPort 升级到 3.03 版本
File::Spec 升级到 3.01 版本(作为新的 PathTools 发行版的一部分)
Encode 升级到 2.08 版本
ExtUtils::MakeMaker 保持在 6.17 版本,因为目前在 CPAN 上可用的较新稳定版本在某些核心平台上存在一些核心模块问题。
I18N::LangTags 升级到 0.35 版本
Math::BigInt 升级到 1.73 版本
Math::BigRat 升级到 0.13 版本
MIME::Base64 升级到 3.05 版本
POSIX::sigprocmask 函数现在可以检索当前信号掩码,而无需同时设置它。
Time::HiRes 升级到 1.65 版本
Perl 有一个新的 -dt 命令行标志,它在调试器中启用线程支持。
reverse sort ...
现在经过优化以反向排序,避免生成临时中间列表。
for (reverse @foo)
现在反向迭代,避免生成临时反转列表。
当给定无效的 utf8 输入时,正则表达式引擎现在更加健壮,因为有时由有错误的 XS 模块生成。
foreach
在 threads::shared 数组上曾经能够使 Perl 崩溃。此错误现已修复。
STDOUT
的析构函数中的正则表达式曾经导致核心转储,因为正则表达式填充已释放。这已修复。
goto &
现在更加健壮 - 深度递归和链式 goto &
中的错误已修复。
在数组上使用 delete
不会再导致内存泄漏。从共享数组引用中弹出项目不会再导致泄漏。
eval_sv()
无法通过污染测试会导致堆栈损坏 - 这已修复。
在具有 64 位指针的平台上,数字比较运算符曾经错误地比较重载引用的地址,而不是使用重载值。这已修复。
read
到具有偏移量的 UTF8 编码缓冲区中,该偏移量超出了缓冲区的末尾,不再错误地计算缓冲区长度。
尽管 Perl 从 5.8 版本开始承诺 sort()
将是稳定的,但两种情况 sort {$b cmp $a}
和 sort {$b <=> $a}
可能会产生不稳定的排序。这在 perl5.8.6 中得到纠正。
本地化 $^D
不会再生成有关有效 -D 标志的诊断消息。
对于 -t 和 -T,"Too late for "-T" option" 的提示已更改为更具信息量的 "-T" is on the #! line, it must also be used on the command line
从现在开始,所有嵌入 Perl 的应用程序的行为都将与使用 -DPERL_USE_SAFE_PUTENV 编译 Perl 相同。有关详细信息,请参阅 INSTALL 文件中的“环境访问”。
大多数 C
源文件现在在顶部都有注释来解释其用途,这将有助于任何希望了解实现概况的人。
B
模块套件的测试数量显著增加。
如果您发现您认为是错误的内容,您可以查看最近发布到 comp.lang.perl.misc 新闻组的文章和 Perl 错误数据库 http://bugs.perl.org。您也可以在 Perl 主页 https://www.perl5.cn 上找到相关信息。
如果您认为您遇到了未报告的错误,请运行随您的发行版提供的 perlbug 程序。请确保将您的错误缩减为一个微小但足够的测试用例。您的错误报告以及 perl -V
的输出将被发送到 [email protected],由 Perl 移植团队进行分析。您可以在 http://bugs.perl.org/ 上浏览和搜索 Perl 5 错误。
有关更改的详细信息,请参阅 Changes 文件。
有关如何构建 Perl 的信息,请参阅 INSTALL 文件。
有关一般事项,请参阅 README 文件。
有关版权信息,请参阅 Artistic 和 Copying 文件。