perl5340delta - perl v5.34.0 的新增内容
本文档描述了 5.32.0 版本和 5.34.0 版本之间的差异。
如果您从 5.30.0 等早期版本升级,请先阅读 perl5320delta,其中描述了 5.30.0 和 5.32.0 之间的差异。
已添加对提供 try
/catch
符号的初步实验性尝试。
use feature 'try';
try {
a_function();
}
catch ($e) {
warn "An error occurred: $e";
}
有关更多信息,请参见 "perlsyn 中的 Try Catch 异常处理"。
qr/{,n}/
现在接受正则表达式量词的空下限,例如 m/x{,3}/
表示 m/x{0,3}/
(在双引号上下文和正则表达式模式中)
这意味着您可以根据需要编写诸如 \x{ FFFC }
之类的内容。这适用于所有此类构造,即 \b{}
、\g{}
、\k{}
、\N{}
、\o{}
和 \x{}
;以及正则表达式量词 {m,n}
。\p{}
和 \P{}
保留其现有的、更宽松的规则,这些规则由 Unicode 标准规定(请参见 "perluniprops 中通过 \p{} 和 \P{} 访问的属性")。
无论是否存在 /x
正则表达式模式修饰符,此功能均有效。
此外,正则表达式花括号量词中的逗号可以在逗号之前和/或之后有空白(制表符或空格),例如 qr/a{ 5, 7 }/
。
0oddddd
现在可以使用 0o
前缀指定八进制文字,例如 0o123_456
,与现有构造平行,以指定十六进制文字 0xddddd
和二进制文字 0bddddd
。此外,内置的 oct()
函数现在接受这种新的语法。
请参见 "perldata 中的标量值构造函数" 和 "perlfunc 中的 oct EXPR"。
修复了正则表达式中的内存泄漏问题 [GH #18604]
ExtUtils::PL2Bat 0.004 已添加到 Perl 核心。
该模块是 pl2bat
脚本的泛化。它作为脚本导致了至少两个代码分支;该模块将统一它们,并使用测试进行实现。
Archive::Tar 已从版本 2.36 升级到 2.38。
autodie 已从版本 2.32 升级到 2.34。
B 已从版本 1.80 升级到 1.82。
B::Deparse 已从版本 1.54 升级到 1.56。
bytes 已从版本 1.07 升级到 1.08。
Carp 已从版本 1.50 升级到 1.52。
Compress::Raw::Bzip2 已从版本 2.093 升级到 2.101。
Compress::Raw::Zlib 已从版本 2.093 升级到 2.101。
Config::Perl::V 已从版本 0.32 升级到 0.33。
CPAN 已从版本 2.27 升级到 2.28。
Data::Dumper 已从版本 2.174 升级到 2.179。
DB 已从版本 1.58 升级到 1.59。
DB_File 已从版本 1.853 升级到 1.855。
Devel::Peek 已从版本 1.28 升级到 1.30。
Devel::PPPort 已从版本 3.57 升级到 3.62。
现在可以使用新的 PERL_VERSION_*
比较宏。
ppport.h --api-info
现在不再包含非 API 信息,除非它是唯一的匹配项。
Digest 已从版本 1.17_01 升级到 1.19。
Digest::MD5 已从版本 2.55_01 升级到 2.58。
DynaLoader 已从版本 1.47 升级到 1.50。
Encode 已从版本 3.06 升级到 3.08。
Env 已从版本 1.04 升级到 1.05。
Errno 已从版本 1.30 升级到 1.33。
experimental 已从版本 0.020 升级到 0.024。
Exporter 已从版本 5.74 升级到 5.76。
ExtUtils::CBuilder 已从版本 0.280234 升级到 0.280236。
ExtUtils::Install 已从版本 2.14 升级到 2.20。
ExtUtils::MakeMaker 已从版本 7.44 升级到 7.62。
ExtUtils::Manifest 已从版本 1.72 升级到 1.73。
ExtUtils::Miniperl 已从版本 1.09 升级到 1.10。
ExtUtils::ParseXS 已从版本 3.40 升级到 3.43。
ExtUtils::Typemaps 已从版本 3.38 升级到 3.43。
Fcntl 已从版本 1.13 升级到 1.14。
feature 已从版本 1.58 升级到 1.64。
添加了默认启用的 bareword_filehandles
特性。
添加了一个新的 multidimensional 特性,该特性默认启用,但允许关闭 多维数组模拟。
File::Copy 已从版本 2.34 升级到 2.35。
File::Fetch 已从版本 0.56 升级到 1.00。
File::Find 已从版本 1.37 升级到 1.39。
File::Path 已从版本 2.16 升级到 2.18。
File::Spec 已从版本 3.78 升级到 3.80。
File::Temp 已从版本 0.2309 升级到 0.2311。
Filter::Util::Call 已从版本 1.59 升级到 1.60。
FindBin 已从版本 1.51 升级到 1.52。
GDBM_File 已从版本 1.18 升级到 1.19。
新增了对更新版本的 GDBM 的函数和兼容性。[GH #18435]
Getopt::Long 已从版本 2.51 升级到 2.52。
Getopt::Std 已从版本 1.12 升级到 1.13。
Hash::Util 已从版本 0.23 升级到 0.25。
Hash::Util::FieldHash 已从版本 1.20 升级到 1.21。
I18N::LangTags 已从版本 0.44 升级到 0.45。
if 已从版本 0.0608 升级到 0.0609。
IO 已从版本 1.43 升级到 1.46。
IO::Socket 现在将错误消息存储在 $IO::Socket::errstr
中,以及 $@
中。
error
方法现在报告套接字和字符设备的输入和输出流的错误状态。类似地,clearerr
现在清除两个流的错误状态。
IO::Handle 中已修复针对常规文件句柄报告的虚假错误。[GH #18019]
IO-Compress 已从版本 2.093 升级到 2.102。
bin/zipdetails 版本 2.02
IO::Socket::IP 已从版本 0.39 升级到 0.41。
IO::Zlib 已从版本 1.10 升级到 1.11。
IPC::SysV 已从版本 2.07 升级到 2.09。
JSON::PP 已从版本 4.04 升级到 4.06。
libnet 发行版已从版本 3.11 升级到 3.13。
locale 已从版本 1.09 升级到 1.10。
Math::Complex 已从版本 1.5901 升级到 1.5902。
MIME::Base64 已从版本 3.15 升级到 3.16。
Module::CoreList 已从版本 5.20200620 升级到 5.20210520。
Module::Load 已从版本 0.34 升级到 0.36。
Module::Load::Conditional 已从版本 0.70 升级到 0.74。
mro 已从版本 1.23 升级到 1.25_001。
Net::Ping 已从版本 2.72 升级到 2.74。
NEXT 已从版本 0.67_01 升级到 0.68。
ODBM_File 已从版本 1.16 升级到 1.17。
Opcode 已从版本 1.47 升级到 1.50。
overload 已从版本 1.31 升级到 1.33。
perlfaq 已从版本 5.20200523 升级到 5.20210411。
PerlIO::encoding 已从版本 0.28 升级到 0.30。
PerlIO::mmap 已从版本 0.016 升级到 0.017。
PerlIO::scalar 已从版本 0.30 升级到 0.31。
PerlIO::via::QuotedPrint 已从版本 0.08 升级到 0.09。
Pod::Checker 已从版本 1.73 升级到 1.74。
Pod::Html 已从版本 1.25 升级到 1.27。
Pod::Simple 已从版本 3.40 升级到 3.42。
Pod::Usage 已从版本 1.69 升级到 2.01。
POSIX 已从版本 1.94 升级到 1.97。
POSIX::signbit() 的行为已得到改进。[GH #18441]
asctime
的文档已澄清,其结果始终为英文。(使用 strftime
获取本地化结果。)
re 已从版本 0.40 升级到 0.41。
(有关更多信息,请参阅 "内部更改" 部分。)
Safe 已从版本 2.41 升级到 2.43。
Socket 已从版本 2.029 升级到 2.031。
Storable 已从版本 3.21 升级到 3.23。
strict 已从版本 1.11 升级到 1.12。
subs 已从版本 1.03 升级到 1.04。
Symbol 已从版本 1.08 升级到 1.09。
Test::Harness 已从版本 3.42 升级到 3.43。
Test::Simple 已从版本 1.302175 升级到 1.302183。
Text::Balanced 已从版本 2.03 升级到 2.04。
threads 已从版本 2.25 升级到 2.26。
threads::shared 已从版本 1.61 升级到 1.62。
Tie::RefHash 已从版本 1.39 升级到 1.40。
Time::HiRes 已从版本 1.9764 升级到 1.9767。
Time::Local 已从版本 1.28 升级到 1.30。
Unicode::Collate 已从版本 1.27 升级到 1.29。
Unicode::Normalize 已从版本 1.27 升级到 1.28。
utf8 已从版本 1.22 升级到 1.24。
version 已从版本 0.9924 升级到 0.9928。
warnings 已从版本 1.47 升级到 1.51。
Win32 已从版本 0.53 升级到 0.57。
修复了 PFNRegGetValueA
的调用约定。
添加了 Win32::IsSymlinkCreationAllowed()
、Win32::IsDeveloperModeEnabled()
和 Win32::GetProcessPrivileges()
。
删除了 Windows 2000 之前版本的旧代码。
XS::APItest 已从版本 1.09 升级到 1.16。
XS::Typemap 已从版本 0.17 升级到 0.18。
本文档是 Perl 附带文档的创作和维护指南。
本文档描述了 Perl 新治理模型的目标、范围、系统和规则。
其他 pod 文件,尤其是 perlpolicy,已修改以反映其采用。
我们已尝试更新文档以反映本文档中列出的更改。如果您发现我们遗漏了任何内容,请在 https://github.com/Perl/perl5/issues 上打开一个问题。
此外,还进行了以下选定更改
perlapi、perlguts、perlxs 和 perlxstut 现在更喜欢 SvPVbyte
而不是 SvPV
。
对 Pumpking 的引用已替换为更准确的术语或在适当情况下替换为 Steering Council。
Perl Steering Council 现在是安全问题的备用联系人。
继续努力改进本文档的呈现方式,并记录更多 API 元素。
freenode IRC URL 已更新。
更正了标量 ${"_<$filename"}
变量的描述。
现在记录了“未导入”警告的更多示例。
Perl FAQ 已更新至 CPAN 版本 5.20201107,并进行了少量改进。
localtime 条目已改进,现在还指出该函数的结果始终为英文。
msgsnd() 文档化了包含在 msgsnd()
的打包 MSG
参数中的长度字段,但没有这样的字段。MSG
仅包含类型和消息内容。
更好地解释了当 sleep
使用零或负值调用时会发生什么。
通过从示例中删除 join()
来简化 split()
文档 [GH #18676]
记录如何为每个 PR 创建一个远程跟踪分支
记录如何将本地分支作为 PR
perlguts 现在更详细地解释了在调用 SvPV
(或变体)时需要咨询 SvUTF8
的原因。同一文档中新增了“如何将 Perl 字符串传递给 C 库?”部分,讨论了何时使用哪种宏样式来读取 SV 的字符串值。
更正了 perlguts 中的 my_rpeep
示例。
添加了关于特殊大小的格式化打印的部分。
<>
和 <<>>
运算符通常分别被称为菱形和双菱形运算符,但之前在它们的文档中没有提到这一点。
记录范围运算符行为变化。
已修复示例中使用的错误变量。
记录 caller() 无法看到 try{} 块。
一个新的示例展示了如何在 for
循环的初始化期间声明一个词法 my
变量。
修复了对 Perl 如何处理未编码字符串的描述。
以下是对诊断输出(包括警告和致命错误消息)的添加或更改。有关诊断消息的完整列表,请参阅 perldiag。
在 'no feature "bareword_filehandles"' 下不允许使用裸字文件句柄 "%s"
这与新的 bareword_filehandles 特性相伴。
这与新的 multidimensional 特性相伴。
尝试通过 %ENV
将宽字符放入环境变量密钥现在会引发此警告。
在处理用户定义属性 ("perlunicode 中的用户定义字符属性") 时遇到错误。这些是程序员编写的子例程,因此可能会出现阻止它们编译或运行的错误。
用户定义属性("perlunicode 中的用户定义字符属性")可以依赖于其他用户定义属性的定义。如果依赖链回溯到此属性,则会发生无限递归,如果不是因为引发此错误的检查。
第一次使用用户定义属性("perlunicode 中的用户定义字符属性")时,会查找其定义并将其转换为内部形式,以便在后续使用中更高效地处理。如果两个或多个线程几乎同时尝试执行此处理,可能会发生竞争条件。
您指定在 \p{...}
中使用一个属性,该属性是语法上有效的用户定义属性,但未找到其定义。
子例程 '%s' 的参数太少(得到 %d 个;预期 %d 个)
子例程参数计数不匹配错误现在包括给定参数和预期参数的数量。
子例程 '%s' 的参数太多(得到 %d 个;预期 %d 个)
子例程参数计数不匹配错误现在包括给定参数和预期参数的数量。
此警告仅在递增时针对正的过大值发出,仅在递减时针对负的过大值发出。现在它针对正的或负的过大值都发出。[GH #18333]
正则表达式中的前瞻/后顾中不允许使用 \K;在 m/%s/ 中用 <-- HERE 标记
此错误在某些涉及嵌套前瞻/后顾的情况下被错误地产生。这个问题已经修复。[GH #18123]
当未初始化的值是未找到元素的结果时,此警告现在可能包含数组或哈希索引。这只有在索引是简单的非魔法变量时才会发生。
新选项:HistItemMinLength
此选项控制命令必须达到的最小长度才能存储在历史记录中。传统上,这固定为 2。对调试器的更改通常很危险,应报告新错误,以便可以调试调试器。
修复 i
和 l
命令
i $var
和 l $var
命令现在可以使用词法变量。
防止 incpath 溢出到 libpth
如果可用,使用 realpath。(这可能会捕获更多重复路径。)
仅包含实际存在的路径。
从 libpth 中过滤掉 inc 路径。
已移除 stadtx 哈希支持
stadtx 支持已完全移除。以前,它可以通过 PERL_HASH_FUNC_STADTX
请求,并且在 64 位版本中是默认的。它已被 SipHash 替换。SipHash 经过了比 stadtx 更严格的审查。
配置
一个新的探测检查 gcvt
/qgcvt
函数的错误 libc 实现。[GH #18170]
-Dusedefaultstrict
Perl 现在可以使用 strict 默认开启(使用配置选项 -Dusedefaultstrict
)。
当 perl
通过 -e
或 -E
运行时,这些严格的默认值不适用。
此设置提供了一种诊断机制,仅用于开发目的,因此默认情况下未定义。
现在支持的最低 Bison 版本为 2.4,最高版本为 3.7。
现在识别了更新的 64 位版本的 Intel C/C++ 编译器,并设置了正确的标志。
当 Configure 检查 va_copy
时,我们现在会捕获 SIGBUS。
在几个系统上,尝试确定我们是否需要 va_copy
或类似的结果会导致 SIGBUS 而不是预期的 SIGSEGV,这以前会导致核心转储。
添加和更改了测试以反映此版本中的其他添加和更改。此外,还进行了以下重大更改
将 t/opbasic/arith.t 中的配置依赖测试拆分为 t/op/arith2.t
添加了 t/re/opt.t,为正则表达式优化提供测试框架。[GH #18213]
已删除 CPAN 发行版在 @INC
中需要点的解决方法 [GH #18394]。所有以前需要解决方法的发行版现在都已适应。
在多核平台上并行测试时,现在可以通过设置以下内容,使测试套件稍早完成,但测试的逻辑顺序较少
PERL_TEST_HARNESS_ASAP=1
在运行测试套件时。
允许在 i386 9front 系统(plan9 的一个分支)上构建 Perl。
与 Symbian 相关的支持代码已被移除。Symbian 是移动设备的操作系统。该端口最后更新于 2009 年 7 月,平台本身最后更新于 2012 年 10 月。
Big Sur 上,许多系统库不再以实际文件的形式存在,尽管 `dlopen` 会假装它们存在,因此现在如果找不到库文件,我们会回退到 `dlopen`。[GH #18407]
当控制台的代码页设置为 65001 (UTF-8) 时,从控制台读取非 ASCII 字符会因 Windows 中的错误而导致故障。已实施解决此问题的变通方法。[GH #18701]
使用 mingw.org 编译器(版本 3.4.5 或更高版本)并使用低于 3.22 的 mingw 运行时版本的构建现在再次有效。这在 Perl 5.31.4 中已损坏。
使用 mingw.org 编译器(版本 3.4.5 或更高版本)并使用 3.21 或更高版本的 mingw 运行时版本的构建现在有效(对于最高版本为 5.3.0 的编译器)。
Makefile.mk 以及对 dmake 的支持已被移除。仍然可以使用 nmake (Makefile) 和 GNU make (GNUmakefile) 在 Windows 上构建 Perl。[GH #18511]
现在可以使用 (32 位和 64 位) mingw-w64 移植的 gcc 在 MS Windows 上使用 `USE_QUADMATH` 构建 perl。[GH #18465]
pl2bat.pl 实用程序现在需要 `use ExtUtils::PL2Bat`。这可能会导致并行构建失败。
Windows 现在支持 symlink() 和 readlink(),而 lstat() 不再是 stat() 的别名。[GH #18005].
与 POSIX 系统不同,在 Windows 上创建符号链接需要提升的权限或启用了开发人员模式的 Windows 10 1703 或更高版本。
stat(),包括 `stat FILEHANDLE`,以及 lstat() 现在使用我们自己的实现来填充返回的设备 `dev` 和 inode 编号 `ino`,而不是始终返回零。链接数 `nlink` 字段现在始终填充。
${^WIN32_SLOPPY_STAT}
以前控制是否填充 `nlink` 字段,这需要单独的 Windows API 调用来获取,因为现在在单个 API 调用中检索了 `nlink` 和 `stat()` 所需的其他信息。
-r
和 -w
运算符现在对 `STDIN`、`STDOUT` 和 `STDERR` 处理程序返回 true。不幸的是,它仍然不会对这些处理程序的副本返回 true。[GH #8502].
stat() 和 lstat() 返回的时间不再跨越夏令时调整不正确。[GH #6080].
在 Vista 或更高版本上,文件句柄上的 -x
现在应该与对应文件名上的 -x
相匹配。[GH #4145]。
-e '"'
不再错误地返回 true。[GH #12431]。
现在 Visual C++ 和 gcc 构建使用相同的清单。
以前,MSVC 构建使用 /manifestdependency 标志而不是嵌入 perlexe.manifest,这会导致一些问题,例如 GetVersionEx()
在 Windows 10 上返回错误的版本号。
现在识别 LC_SYNTAX
和 LC_TOD
本地化类别。Perl 除了现在允许您指定它们之外,对这些类别不做任何操作。它们包含在 LC_ALL
中。
修正了 Perl 对 -Dusequadmath
构建的格式化输出实现中双精度和长双精度参数的处理。
这适用于 PerlIO_printf()
、croak()
、warn()
、sv_catpvf()
及其变体。
以前在 quadmath
构建中,类似以下的代码:
PerlIO_printf(PerlIO_stderr(), "%g", somedouble);
或
PerlIO_printf(PerlIO_stderr(), "%Lg", somelongdouble);
会错误地抛出异常“panic: quadmath invalid format ...”,因为为 quadmath 构建添加的代码假设 NV
是传递给这些函数的唯一浮点格式。
此代码还会将标准 C 长双精度指定符 L
处理为期望 NV
(对于 quadmath 构建为 __float128
),导致未定义的行为。
这些函数现在可以正确地接受双精度、长双精度和 NV。
以前,按位移位运算符(移位量)的右操作数隐式地从 IV 转换为 int,但如果 IV 不适合 int,则可能会导致错误的结果。
此外,移位 INT_MIN 位过去会使被移位数保持不变(被视为 0 位移位而不是负移位)。
添加了一组 cop_hints_exists_{pv,pvn,pvs,sv}
函数,以支持检查特定 cop 的提示哈希中是否存在键,而无需创建该值的临时副本。
添加了一个辅助工具,用于在调试 XS 或 C 代码时使用 DEBUG
宏。perl.h 中的注释描述了 DEBUG_PRE_STMTS
和 DEBUG_POST_STMTS
,您可以 #define
它们来执行一些操作,例如保存和恢复 errno
(如果 DEBUG
调用干扰了它),或者显示时间戳,或者来自哪个线程,或者调用的位置,或者其他任何操作。您可以进行快速修改来帮助您跟踪问题,而无需编辑各个 DEBUG
调用。
使 REFCOUNTED_HE_EXISTS
在核心之外可用
所有 SvTRUE
类函数现在只评估其参数一次。在 5.32 中,简单的 "SvTRUE
" in perlapi 被更改为这样做;现在其他函数也这样做。
在考虑模式 /A*B/(其中 A 和 B 是任意的)时,Unicode 现在是头等公民。模式匹配代码试图创建一个紧密的循环来匹配 A 的跨度。现在,该逻辑已针对 UTF-8 进行了更新。
re 模块有一个新的函数 optimization
,它可以返回一个关于已编译正则表达式发现的优化数据的哈希引用。
PERL_GLOBAL_STRUCT
编译选项已被删除,随之而去的是对 dVAR
宏的需求。为了与 XS 模块向后兼容,dVAR
在 PERL_CORE
之外仍然被定义为一个无操作。
添加了一种新的保存堆栈类型 SAVEt_HINTS_HH
,它使 SAVEt_HINTS
的先前行为更加整洁。在以前的版本中,推送到保存堆栈的类型和值取决于提示是否包含 HINT_LOCALIZE_HH
位,这会使检查保存堆栈的外部代码变得复杂。新版本使用不同的保存堆栈类型来指示差异。
添加了一个新的 API 函数 "perlapi 中的 av_count",它提供了一种清晰命名的方式来查找数组中有多少个元素。
设置 %ENV
现在可以正确处理键中的升级字符串。以前,Perl 将 SV 的内部 PV 直接发送到操作系统;现在,它将像处理值一样处理键,从 5.18 开始:首先尝试降级字符串;如果失败,则发出警告并使用 utf8 形式。
修复了 regcomp.c 中的内存泄漏 [GH #18604]
pack/unpack 格式 'D' 现在可以在所有支持它的系统上工作
以前,如果 NV == long double
,现在它在所有具有长双精度浮点数的平台上都受支持。特别是,这意味着它现在也支持 quadmath 平台。
跳过尝试对不完整的操作树进行常量折叠 [GH #18380]
在某些情况下,对链接比较操作树的常量折叠可能会失败,导致 perl 崩溃。作为快速修复,现在跳过对这种操作树的常量折叠。这也解决了 [GH #17917]
%g
格式化在 Ubuntu-18.04 上损坏,NVSIZE == 8
[GH #18170]
gcvt
和 qgcvt
函数的错误 libc 实现导致 (s)printf
错误地截断 %g
格式化的数字。一个新的 Configure 探测现在检查这一点,结果是 libc sprintf
将被用来代替 gcvt
和 qgcvt
。
作为此修复的一部分添加的测试还揭示了某些 Windows 构建中的相关问题。因此,Windows 上 MINGW 构建的 makefile 已调整为默认使用 USE_MINGW_ANSI_STDIO
,确保它们也提供正确的数字 (s)printf
格式化。
op.c:在 use utf8
生效时,在 my $_
上 croak [GH #18449]
词法主题功能实验在 Perl v5.24 中被删除,声明 my $_
成为编译时错误。但是,如果 use utf8
生效,以前仍然可以进行此声明。
regexec.c: 修复断言失败 [GH #18451]
模糊测试在正则表达式引擎中触发了一个断言失败,原因是将太多字符复制到缓冲区中。
semctl()、msgctl() 和 shmctl() 现在在 IPC_STAT
或 GETALL
操作修改 ARG
参数时,会正确地重置其上的 UTF-8 标志。
semctl()
、msgctl()
和 shmctl()
现在尝试在将 ARG
参数的值用作 IPC_SET
或 SETALL
调用的输入时,将其降级。降级失败将抛出异常。
在 semctl()
、msgctl()
或 shmctl()
将 ARG
参数视为指针的情况下,未定义的值不再生成警告。在大多数此类调用中,指针本身并不使用,这允许您为底层函数未使用的值提供 undef
。
semop() 现在降级 OPSTRING
参数,msgsnd() 现在降级 MSG
参数,shmwrite 现在降级 STRING
参数以将其视为字节。以前它们会保持升级状态,为底层函数调用提供损坏的结构。
msgrcv() 现在在修改 VAR
参数时,会正确地重置其上的 UTF-8 标志。以前,UTF-8 标志可能会保留,导致 VAR
中可能出现损坏的结果。
现在为堆叠的文件测试运算符正确调用了魔法。[GH #18293]
@ary = split(...)
优化不再将目标数组切换为值栈。[GH #18232] 另请参阅 https://github.com/Perl/perl5/pull/18014#issuecomment-671299506 中的讨论。
修复了某些具有递归子模式的正则表达式匹配不正确的错误。
在 Win32 上,waitpid(-1, WNOHANG)
有时可能具有非常长的超时时间。[GH #16529]
MARK
以及 items
现在在 BOOT
XSUB 中被正确初始化。
无
无
Kent Fredric (KENTNL) 于 2021 年 2 月去世。他是新西兰人,自称“超级极客”,是 178 个 CPAN 发行版的作者或维护者,Gentoo Linux 发行版的 Perl 维护者,也是 Perl 核心发行版的贡献者。他的家人、朋友和全球开源软件社区都为他的逝去感到悲痛。
Perl 5.34.0 代表了自 Perl 5.32.0 以来大约 11 个月的开发,包含来自 78 位作者的 2100 个文件中的大约 280,000 行更改。
不包括自动生成的 文件、文档和发布工具,大约有 150,000 行更改涉及 1300 个 .pm、.t、.c 和 .h 文件。
得益于充满活力的用户和开发人员社区,Perl 在其第四个十年中继续蓬勃发展。以下人员已知为 Perl 5.34.0 的改进做出了贡献。
Aaron Crane, Adam Hartley, Andy Dougherty, Ben Cornett, Branislav Zahradník, brian d foy, Chris 'BinGOs' Williams, Christian Walde (Mithaldu), Craig A. Berry, Dagfinn Ilmari Mannsåker, Dan Book, Daniel Böhmer, Daniel Laügt, Dan Kogai, David Cantrell, David Mitchell, Dominic Hamon, E. Choroba, Ed J, Eric Herman, Eugene Alvin Villar, Felipe Gasper, Giovanni Tataranni, Graham Knop, Graham Ollis, Hauke D, H.Merijn Brand, Hugo van der Sanden, Ichinose Shogo, Ivan Baidakou, Jae Bradley, James E Keenan, Jason McIntosh, jkahrman, John Karr, John Lightsey, Kang-min Liu, Karen Etheridge, Karl Williamson, Keith Thompson, Leon Timmermans, Marc Reisner, Marcus Holland-Moritz, Max Maischein, Michael G Schwern, Nicholas Clark, Nicolas R., Paul Evans, Petr Písař, raiph, Renee Baecker, Ricardo Signes, Richard Leach, Romano, Ryan Voots, Samanta Navarro, Samuel Thibault, Sawyer X, Scott Baker, Sergey Poznyakoff, Sevan Janiyan, Shirakata Kentaro, Shlomi Fish, Sisyphus, Sizhe Zhao, Steve Hay, TAKAI Kousuke, Thibault Duponchelle, Todd Rinaldo, Tomasz Konojacki, Tom Hukins, Tom Stellard, Tony Cook, vividsnow, Yves Orton, Zakariyya Mughal, Михаил Козачков.
上面的列表几乎肯定是不完整的,因为它是由版本控制历史自动生成的。特别是,它不包括向 Perl 错误跟踪器报告问题的(非常感谢)贡献者的姓名。
此版本中包含的许多更改源于 Perl 核心包含的 CPAN 模块。我们感谢整个 CPAN 社区帮助 Perl 蓬勃发展。
有关 Perl 所有历史贡献者的更完整列表,请参阅 Perl 源代码发行版中的 AUTHORS 文件。
如果您发现您认为是错误的内容,您可以查看 https://github.com/Perl/perl5/issues 上的 perl 错误数据库。您也可以在 https://www.perl5.cn/(Perl 主页)上找到相关信息。
如果您认为您遇到了未报告的错误,请在 https://github.com/Perl/perl5/issues 上创建一个问题。请确保将您的错误缩减为一个微小但足以说明问题的测试用例。
如果您要报告的错误存在安全隐患,不适合发送到公共问题跟踪器,请参阅 "perlsec 中的 SECURITY VULNERABILITY CONTACT INFORMATION",了解如何报告该问题。
如果您想感谢 Perl 5 维护者为 Perl 5 所做的工作,您可以运行 perlthanks
程序。
perlthanks
这将向 Perl 5 维护者列表发送一封电子邮件,表达您的感谢。
Changes 文件,解释如何查看有关更改的详尽信息。
INSTALL 文件,介绍如何构建 Perl。
README 文件,介绍一般信息。
Artistic 和 Copying 文件,介绍版权信息。