perl585delta - Perl v5.8.5 的新特性
本文档描述了 5.8.4 版本和 5.8.5 版本之间的差异。
没有与 5.8.4 不兼容的更改。
Perl 的正则表达式引擎现在包含对匹配两个 Unicode 字符类交集的支持。您现在也可以在其他用户定义的字符类中引用用户定义的字符类。
Carp 改进为与 Safe 良好协作。Carp 的消息报告现在应该没有异常 - 它将始终打印出行号信息。
CGI 升级到 3.05 版本
charnames 现在避免覆盖 $_
Digest 升级到 1.08 版本
Encode 升级到 2.01 版本
FileCache 升级到 1.04 版本
libnet 升级到 1.19 版本
Pod::Parser 升级到 1.28 版本
Pod::Perldoc 升级到 3.13 版本
Pod::LaTeX 升级到 0.57 版本
Safe 现在可以与 Carp 正确协作
Scalar-List-Utils 升级到 1.14 版本
Shell 的文档已重新编写,其历史上的部分命令参数自动引用功能现在可以禁用。
Test 升级到 1.25 版本
Test::Harness 升级到 2.42 版本
Time::Local 升级到 1.10 版本
Unicode::Collate 升级到 0.40 版本
Unicode::Normalize 升级到 0.30 版本
调试器现在可以通过重新启动并重新运行除最后一个命令之外的所有命令(来自保存的命令历史记录)来模拟向后单步执行。
h2ph 现在能够理解非常有限的 C 内联函数集 - 基本上,看起来像 CPP 宏的内联函数。这是为了处理最新版本的 glibc 的一些头文件而引入的。标准警告仍然适用;引用 h2ph 的文档,您可能需要修改生成的文件。
Perl 5.8.5 应该能够从源代码在 LynxOS 上干净地构建。
在 5.8.4 中引入的原地排序优化存在一个错误。例如,在以下代码中
@a = sort ($b, @a)
结果将省略值 $b。现在已修复。
在 5.8.4 中引入的针对不必要赋值的优化可能会产生虚假警告。这已修复。
Perl 现在应该能够正确检测和读取带有 BOM 标记的和(无 BOM 的)UTF-16 脚本(无论字节序)。
当存在弱引用时创建新线程存在错误,并且经常在解释器销毁时导致警告。已知错误现已修复。
修复了几个涉及使用substr
操作 Unicode 字符串的隐晦错误。
以前,如果 Perl 的文件通配符函数遇到一个它没有权限打开的目录,它会立即返回,导致结果列表意外截断。这已修复,以与 Unix shell 的通配符行为一致。
线程创建时间在相同运行之间可能差异很大。这是由线程克隆例程中糟糕的哈希算法造成的,现在已修复。
ithreads 实现的内部机制没有检查操作系统级线程创建是否失败。threads->create() 现在在线程创建失败时返回undef
,而不是使 perl 崩溃。
Perl -V 有几个改进
正确输出包含嵌入式代码片段或其他字符的本地补丁名称,这些字符以前会使它混淆。
对 -V 的参数看起来像正则表达式将给出多行输出。
尾随冒号会抑制换行符和 ';' 终止符,允许将查询嵌入到 shell 命令中。
前导冒号会删除响应的 'name=' 部分,允许映射到任何名称。
当 perl 无法找到指定的脚本时,它现在会输出第二行,建议用户使用-S
标志
$ perl5.8.5 missing.pl
Can't open perl script "missing.pl": No such file or directory.
Use -S to search $PATH for it.
正则表达式引擎使用的 Unicode 字符类文件现在在构建时从提供的 Unicode 联盟数据文件构建,而不是预先构建后发布。这使得压缩的 Perl 源代码包大约减少了 200K。副作用是 lib/unicore 中文件的布局发生了变化。
回归测试t/uni/class.t现在执行了更多测试,即使在快速机器上也可能需要几分钟才能运行。
已知此版本无法在 Windows 95 上构建。
如果您发现您认为是错误的内容,您可能需要查看最近发布到 comp.lang.perl.misc 新闻组和 http://bugs.perl.org 上的 Perl 错误数据库的文章。https://www.perl5.cn(Perl 主页)上也可能有一些信息。
如果您认为您遇到了未报告的错误,请运行随您的版本一起提供的perlbug程序。请务必将您的错误缩减为一个微小但足够的测试用例。您的错误报告以及perl -V
的输出将被发送到 [email protected],由 Perl 移植团队进行分析。您可以在 http://bugs.perl.org/ 浏览和搜索 Perl 5 错误。
有关更改的详细信息,请参阅Changes文件。
有关如何构建 Perl 的信息,请参阅INSTALL文件。
有关一般信息的,请参阅README文件。
有关版权信息的,请参阅Artistic和Copying文件。