内容

名称

perl5101delta - perl v5.10.1 的新特性

描述

本文档描述了 5.10.0 版本和 5.10.1 版本之间的差异。

如果您从 5.8.8 或更早的版本升级,请先阅读 perl5100delta,其中描述了 5.8.8 和 5.10.0 之间的差异。

不兼容的更改

switch 语句的更改

given/when switch 语句对复杂表达式的处理得到了增强。现在有两种新情况,when 会将它的参数解释为布尔值,而不是用于智能匹配的表达式。

翻转操作符

..... 翻转操作符现在在布尔上下文中进行评估,遵循它们通常的语义;参见 "perlop 中的范围操作符"

请注意,与 perl 5.10.0 一样,when (1..10) 不会用于测试给定值是否为 1 到 10 之间的整数;您应该使用 when ([1..10]) 代替(注意数组引用)。

但是,与 5.10.0 相反,在布尔上下文中评估翻转操作符确保它现在可以在 when() 中使用,特别是用于实现双稳态条件,例如:

when (/^=begin/ .. /^=end/) {
  # do something
}
定义或操作符

涉及定义或操作符的复合表达式,例如 when (expr1 // expr2),如果第一个表达式是布尔值,则将被视为布尔值。(这只是扩展了适用于常规或操作符的现有规则,例如 when (expr1 || expr2)。)

下一节详细介绍了对智能匹配操作符语义的更多更改,这些更改自然也会修改 switch 语句的行为,其中隐式使用智能匹配。

智能匹配的更改

基于类型的分派的更改

智能匹配操作符 ~~ 不再是可交换的。智能匹配的行为现在主要取决于其右侧参数的类型。此外,在某些情况下,它的语义已经调整以获得更大的一致性或实用性。虽然总体向后兼容性得到维护,但必须注意一些更改。

智能匹配运算符的完整调度表在 "perlsyn 中的智能匹配详解" 中给出。

智能匹配和重载

根据基于最右侧参数类型的调度规则,当重载 ~~ 的对象出现在运算符的右侧时,重载例程将始终被调用(第三个参数设置为真值,参见 overload)。但是,当对象出现在左侧时,只有当最右侧参数是简单标量时才会调用重载例程。这样,智能匹配在数组上的分布性不会被破坏,其他复杂类型(代码引用、哈希、正则表达式)的行为也不会被破坏。因此,智能匹配重载例程的编写者主要只需要担心与标量的比较,以及可能与字符串化重载的比较;其他常见情况将被自动一致地处理。

~~ 现在将拒绝在不重载它的对象上工作(为了避免依赖对象的底层结构)。(但是,如果对象重载了字符串化或数值化运算符,并且重载回退处于活动状态,它将像往常一样被使用。)

其他不兼容的更改

核心增强功能

Unicode 字符数据库 5.1.0

Perl 5.10.1 中包含的 Unicode 字符数据库副本已从 5.0.0 更新到 5.1.0。有关重大更改,请参阅 http://www.unicode.org/versions/Unicode5.1.0/#Notable_Changes

可插拔方法解析顺序的适当接口

从 Perl 5.10.1 开始,提供了一种新的接口,用于插拔和使用除默认(线性深度优先搜索)以外的方法解析顺序。在 5.10.0 中添加的 C3 方法解析顺序已作为插件重新实现,而没有改变其 Perl 空间接口。有关更多信息,请参阅 perlmroapi

overloading 编译指示

此编译指示允许您在词法范围内禁用或启用某些或所有操作的重载。(Yuval Kogman)

并行测试

核心发行版现在可以在类 Unix 平台上并行运行其回归测试。而不是运行 make test,请在您的环境中设置 TEST_JOBS 为要并行运行的测试数量,然后运行 make test_harness。在类 Bourne 的 shell 中,这可以通过以下方式完成

TEST_JOBS=3 make test_harness  # Run 3 tests in parallel

使用环境变量而不是并行 make 本身,因为 TAP::Harness 需要能够自行调度单个无冲突的测试脚本,并且没有标准接口与 make 实用程序交互以与其作业调度程序交互。

请注意,目前某些测试脚本在并行运行时可能会失败(最明显的是 ext/IO/t/io_dir.t)。如有必要,请再次按顺序运行失败的脚本,看看故障是否消失。

DTrace 支持

已添加了一些对 DTrace 的支持。请参阅 INSTALL 中的“DTrace 支持”。

支持 CPAN 模块元数据中的 configure_requires

CPANCPANPLUS 现在都支持大多数最新 CPAN 发行版中包含的 META.yml 元数据文件中的 configure_requires 关键字。这允许发行版作者指定在运行 Makefile.PLBuild.PL 之前必须安装的配置先决条件。

有关在为 CPAN 创建发行版时如何指定 configure_requires 的更多信息,请参阅 ExtUtils::MakeMakerModule::Build 的文档。

模块和编译指示

新的模块和编译指示

autodie

这是一个新的词法范围替代 Fatal 模块。捆绑版本为 2.06_01。请注意,在此版本中,当 autodie 生效时使用字符串 eval 会导致 autodie 行为泄漏到周围范围。有关更多详细信息,请参阅 autodie 中的“错误”

Compress::Raw::Bzip2

已将其添加到核心(版本 2.020)。

parent

此 pragma 在编译时建立与基类的 ISA 关系。它提供了 base 的关键功能,但没有功能蔓延。

Parse::CPAN::Meta

此功能已添加到核心(版本 1.39)。

Pragma 更改

attributes

从版本 0.08 升级到 0.09。

attrs

从版本 1.02 升级到 1.03。

base

从版本 2.13 升级到 2.14。请参阅 parent 以获取替代方案。

bigint

从版本 0.22 升级到 0.23。

bignum

从版本 0.22 升级到 0.23。

bigrat

从版本 0.22 升级到 0.23。

charnames

从版本 1.06 升级到 1.07。

已添加 Unicode NameAliases.txt 数据库文件。这将添加一些以前无法识别的额外 \N 字符名称;例如,"\N{LATIN CAPITAL LETTER GHA}"

constant

从版本 1.13 升级到 1.17。

feature

:5.10:5.10.X 功能包的含义略有改变。最后一个组件(如果有,即 X)将被忽略。这是基于这样的假设:新功能通常不会添加到维护版本中。因此,:5.10:5.10.X 的效果相同。这是对 5.10.0 文档中行为的更改。

fields

从版本 2.13 升级到 2.14(这只是一个版本升级;没有功能更改)。

lib

从版本 0.5565 升级到 0.62。

open

从版本 1.06 升级到 1.07。

overload

从版本 1.06 升级到 1.07。

overloading

请参阅上面 "overloading pragma"

version

从版本 0.74 升级到 0.77。

更新的模块

Archive::Extract

从版本 0.24 升级到 0.34。

Archive::Tar

从版本 1.38 升级到 1.52。

Attribute::Handlers

从版本 0.79 升级到 0.85。

AutoLoader

从版本 5.63 升级到 5.68。

AutoSplit

从版本 1.05 升级到 1.06。

B

从版本 1.17 升级到 1.22。

B::Debug

从版本 1.05 升级到 1.11。

B::Deparse

从版本 0.83 升级到 0.89。

B::Lint

从版本 1.09 升级到 1.11。

B::Xref

从版本 1.01 升级到 1.02。

Benchmark

从版本 1.10 升级到 1.11。

Carp

从版本 1.08 升级到 1.11。

CGI

从版本 3.29 升级到 3.43。(还包括 3.45 中的“popup_menu() 的 default_value”修复)。

Compress::Zlib

从版本 2.008 升级到 2.020。

CPAN

从版本 1.9205 升级到 1.9402。CPAN::FTP 有一个本地修复,以防止它在下载失败时过于冗长。

CPANPLUS

从版本 0.84 升级到 0.88。

CPANPLUS::Dist::Build

从版本 0.06_02 升级到 0.36。

Cwd

从版本 3.25_01 升级到 3.30。

Data::Dumper

从版本 2.121_14 升级到 2.124。

DB

从版本 1.01 升级到 1.02。

DB_File

从版本 1.816_1 升级到 1.820。

Devel::PPPort

从版本 3.13 升级到 3.19。

Digest::MD5

从版本 2.36_01 升级到 2.39。

Digest::SHA

从版本 5.45 升级到 5.47。

DirHandle

从版本 1.01 升级到 1.03。

Dumpvalue

从版本 1.12 升级到 1.13。

DynaLoader

从版本 1.08 升级到 1.10。

Encode

从版本 2.23 升级到 2.35。

Errno

从版本 1.10 升级到 1.11。

Exporter

从版本 5.62 升级到 5.63。

ExtUtils::CBuilder

从版本 0.21 升级到 0.2602。

ExtUtils::Command

从版本 1.13 升级到 1.16。

ExtUtils::Constant

从 0.20 升级到 0.22。(请注意,这两个版本都不在 CPAN 上。)

ExtUtils::Embed

从版本 1.27 升级到 1.28。

ExtUtils::Install

从版本 1.44 升级到 1.54。

ExtUtils::MakeMaker

从版本 6.42 升级到 6.55_02。

请注意,ExtUtils::MakeMaker::bytesExtUtils::MakeMaker::vmsish 已从该发行版中删除。

ExtUtils::Manifest

从版本 1.51_01 升级到 1.56。

ExtUtils::ParseXS

从版本 2.18_02 升级到 2.2002。

Fatal

从版本 1.05 升级到 2.06_01。另请参阅新的 pragma autodie

File::Basename

从版本 2.76 升级到 2.77。

File::Compare

从版本 1.1005 升级到 1.1006。

File::Copy

从版本 2.11 升级到 2.14。

File::Fetch

从版本 0.14 升级到 0.20。

File::Find

从版本 1.12 升级到 1.14。

File::Path

从版本 2.04 升级到 2.07_03。

File::Spec

从版本 3.2501 升级到 3.30。

File::stat

从版本 1.00 升级到 1.01。

File::Temp

从版本 0.18 升级到 0.22。

FileCache

从版本 1.07 升级到 1.08。

FileHandle

从版本 2.01 升级到 2.02。

Filter::Simple

从版本 0.82 升级到 0.84。

Filter::Util::Call

从版本 1.07 升级到 1.08。

FindBin

从版本 1.49 升级到 1.50。

GDBM_File

从版本 1.08 升级到 1.09。

Getopt::Long

从版本 2.37 升级到 2.38。

Hash::Util::FieldHash

从版本 1.03 升级到 1.04。这修复了一个内存泄漏。

I18N::Collate

从版本 1.00 升级到 1.01。

IO

从版本 1.23_01 升级到 1.25。

这使得非阻塞模式在 Windows 中的 IO::Socket::INET [CPAN #43573] 上工作。

IO::Compress::*

从版本 2.008 升级到 2.020。

IO::Dir

从版本 1.06 升级到 1.07。

IO::Handle

从版本 1.27 升级到 1.28。

IO::Socket

从版本 1.30_01 升级到 1.31。

IO::Zlib

从版本 1.07 升级到 1.09。

IPC::Cmd

从版本 0.40_1 升级到 0.46。

IPC::Open3

从版本 1.02 升级到 1.04。

IPC::SysV

从版本 1.05 升级到 2.01。

lib

从版本 0.5565 升级到 0.62。

List::Util

从版本 1.19 升级到 1.21。

Locale::MakeText

从版本 1.12 升级到 1.13。

Log::Message

从版本 0.01 升级到 0.02。

Math::BigFloat

从版本 1.59 升级到 1.60。

Math::BigInt

从版本 1.88 升级到 1.89。

Math::BigInt::FastCalc

从版本 0.16 升级到 0.19。

Math::BigRat

从版本 0.21 升级到 0.22。

Math::Complex

从版本 1.37 升级到 1.56。

Math::Trig

从版本 1.04 升级到 1.20。

Memoize

从版本 1.01_02 升级到 1.01_03(仅是轻微的文档更改)。

Module::Build

从版本 0.2808_01 升级到 0.34_02。

Module::CoreList

从版本 2.13 升级到 2.18。此版本不再包含 %Module::CoreList::patchlevel 哈希。

Module::Load

从版本 0.12 升级到 0.16。

Module::Load::Conditional

从版本 0.22 升级到 0.30。

Module::Loaded

从版本 0.01 升级到 0.02。

Module::Pluggable

从版本 3.6 升级到 3.9。

NDBM_File

从版本 1.07 升级到 1.08。

Net::Ping

从版本 2.33 升级到 2.36。

NEXT

从版本 0.60_01 升级到 0.64。

Object::Accessor

从版本 0.32 升级到 0.34。

OS2::REXX

从版本 1.03 升级到 1.04。

Package::Constants

从版本 0.01 升级到 0.02。

PerlIO

从版本 1.04 升级到 1.06。

PerlIO::via

从版本 0.04 升级到 0.07。

Pod::Man

从版本 2.16 升级到 2.22。

Pod::Parser

从版本 1.35 升级到 1.37。

Pod::Simple

从版本 3.05 升级到 3.07。

Pod::Text

从版本 3.08 升级到 3.13。

POSIX

从版本 1.13 升级到 1.17。

Safe

从 2.12 升级到 2.18。

Scalar::Util

从版本 1.19 升级到 1.21。

SelectSaver

从 1.01 升级到 1.02。

SelfLoader

从 1.11 升级到 1.17。

Socket

从 1.80 升级到 1.82。

Storable

从 2.18 升级到 2.20。

Switch

从版本 2.13 升级到 2.14。请参阅 "弃用"

Symbol

从版本 1.06 升级到 1.07。

Sys::Syslog

从版本 0.22 升级到 0.27。

Term::ANSIColor

从版本 1.12 升级到 2.00。

Term::ReadLine

从版本 1.03 升级到 1.04。

Term::UI

从版本 0.18 升级到 0.20。

Test::Harness

从版本 2.64 升级到 3.17。

请注意,从 2.x 升级到 3.x 的一个副作用是,实验性的 Test::Harness::Straps 模块(及其支持的 AssertIteratorPointResults 模块)已被删除。如果您仍然需要它,那么它可以在 CPAN 上的(未维护的)Test-Harness-Straps 发行版中找到。

Test::Simple

从版本 0.72 升级到 0.92。

Text::ParseWords

从版本 3.26 升级到 3.27。

Text::Tabs

从版本 2007.1117 升级到 2009.0305。

Text::Wrap

从版本 2006.1117 升级到 2009.0305。

Thread::Queue

从版本 2.00 升级到 2.11。

Thread::Semaphore

从版本 2.01 升级到 2.09。

threads

从版本 1.67 升级到 1.72。

threads::shared

从版本 1.14 升级到 1.29。

Tie::RefHash

从版本 1.37 升级到 1.38。

Tie::StdHandle

此版本进行了文档更改,并首次分配了版本:版本 4.2。

Time::HiRes

从版本 1.9711 升级到 1.9719。

Time::Local

从版本 1.18 升级到 1.1901。

Time::Piece

从版本 1.12 升级到 1.15。

Unicode::Normalize

从版本 1.02 升级到 1.03。

Unicode::UCD

从版本 0.25 升级到 0.27。

charinfo() 现在可以处理 Unicode 后续版本中添加的统一 CJK 代码点。

casefold() 返回了新的字段,以提供更简单的接口和以前缺少的信息。为了向后兼容,保留了旧字段。现在返回了有关突厥语特定代码点的信息。

文档已更正并扩展。

UNIVERSAL

从版本 1.04 升级到 1.05。

Win32

从版本 0.34 升级到 0.39。

Win32API::File

从版本 0.1001_01 升级到 0.1101。

XSLoader

从版本 0.08 升级到 0.10。

实用程序变更

h2ph

现在也查找 include-fixed,这是 gcc 搜索路径中最近添加的内容。

h2xs

不再错误地将枚举值视为宏(Daniel Burr)。

现在在枚举中正确处理 C++ 样式常量 (//)。(使用了来自 Rainer Weikusat 的补丁;Daniel Burr 也提出了类似的修复)。

perl5db.pl

LVALUE 子例程现在可以在调试器下工作。

调试器现在可以正确处理代理常量子例程和子例程存根。

perlthanks

Perl 5.10.1 添加了一个新的实用程序 perlthanks,它是 perlbug 的变体,但用于向 Perl 的作者和维护者发送非错误报告。只收到错误报告可能会让人有点沮丧:我们将看看这是否会改变现状。

新文档

perlhaiku

这包含有关如何为 Haiku 平台构建 perl 的说明。

perlmroapi

这描述了可插拔方法解析顺序的新接口。

perlperf

本文档由 Richard Foley 撰写,介绍了可用于 perl 程序的性能和优化技术的应用,特别是针对 perl 程序。

perlrepository

本文档描述了如何使用git版本控制系统访问perl源代码。

perlthanks

本文档描述了新的perlthanks工具。

现有文档的更改

各种大型Changes*文件(列出了过去18年对perl进行的所有更改)已被删除,并被一个名为Changes的小文件替换,该文件仅解释了如何从git版本控制系统中提取相同的信息。

文件Porting/patching.pod已被删除,因为它主要描述了与旧的基于Perforce的存储库的交互,该存储库现已过时。仍然相关的的信息已移至perlrepository

perlapiperlinternperlmodlibperltoc现在都在构建时生成,而不是作为发布的一部分提供。

性能增强

安装和配置改进

ext/重组

ext中目录的布局已修改。具体来说,所有扩展现在都是扁平的,并且位于顶层,路径名中的/被替换为-,因此ext/Data/Dumper/现在是ext/Data-Dumper/,等等。扩展名在指定给Configure时以及在%Config::Config下以dynamic_extknown_extensionsnonxs_extstatic_ext键报告时,没有改变,仍然使用/。因此,此更改在perl安装后不会有任何影响。但是,Attribute::HandlersSafemro现在已成为独立的扩展,因此,如果您运行Configure并指定要构建的扩展的精确列表,则需要更改它以考虑这一点。

在 5.10.2 中,计划将许多双重生命周期模块从 lib 移动到 ext;同样,这不会影响已安装的 perl,但如果您使用预先配置的扩展列表调用 Configure 进行构建,则会产生影响。

配置改进

如果 vendorlibvendorarch 相同,则它们只会被添加到 @INC 一次。

如果 perl 使用 -Dusedevel 构建,则现在定义了 $Config{usedevel} 和 C 级别的 PERL_USE_DEVEL

如果编译器支持,Configure 将启用 -fstack-protector 的使用,以提供针对堆栈溢出攻击的保护。

如果您使用的是 C++ 编译器而不是 C 编译器,Configure 现在将确定可重入函数和 gconvert 的正确原型。

在 Unix 上,如果您从包含 git 存储库的树中构建,则配置过程将记录您签出的提交哈希值,以便在 perl -vperl -V 的输出中显示。未推送的本地提交会自动添加到 perl -V 显示的本地补丁列表中。

编译改进

作为 ext 平坦化的部分,所有平台上的所有扩展都由 make_ext.pl 构建。这将取代特定于 Unix 的 ext/util/make_ext、特定于 VMS 的 make_ext.com 和特定于 Win32 的 win32/buildext.pl

平台特定更改

AIX

为 AIX 5L 和 6.1 删除了 libbsd。只有 flock() 从 libbsd 中使用。

为 AIX 5L 和 6.1 删除了 libgdbmlibgdbm 作为 AIX 工具箱中的可选包提供。不幸的是,64 位版本已损坏。

提示更改意味着 AIX 4.2 应该再次工作。

Cygwin

在 Cygwin 上,我们现在从 DLL 中剥离最后一个数字。多年来,cygwin.com 构建一直是这种行为。提示文件已更新。

FreeBSD

提示文件现在识别 FreeBSD 7 及更高版本上的正确线程库。

Irix

我们现在解决 Irix 6.5 编译器中的一个奇怪的预处理器错误:cc -E - 不幸地进入了 K&R 模式,但 cc -E file.c 不会。

Haiku

来自 Haiku 维护者的补丁已合并。Perl 现在应该可以在 Haiku 上构建。

MirOS BSD

Perl 现在可以在 MirOS BSD 上构建。

NetBSD

Hints 现在支持 5.* 版本。

Stratus VOS

已合并来自 Stratus 的各种更改。

Symbian

现在支持 Symbian S60 3.2 SDK 和 S60 5.0 SDK。

Win32

改进的消息窗口处理意味着 alarmkill 消息将不再在竞争条件下丢失。

VMS

如果 $/ 设置为数字引用(表示记录式读取),则从 PerlIO::scalar 的内存中临时文件读取将失败。现在已修复。

VMS 现在支持 getgrgid

对 VMS 文件名处理和转换代码进行了许多改进和清理。

启用 PERL_VMS_POSIX_EXIT 逻辑名称现在会在 VMS 条件值中编码 POSIX 退出状态,以便更好地与 GNV 的 bash shell 和其他依赖 POSIX 退出值的实用程序进行交互。有关详细信息,请参阅 "$?" in perlvms

选定的错误修复

新的或更改的诊断

panic: sv_chop %s

当 C 例程 Perl_sv_chop() 传递了一个不在标量字符串缓冲区内的位置时,会发生此新的致命错误。这可能是由有错误的 XS 代码引起的,此时无法恢复。

无法找到 %s 的父级包 %s

此警告已被移除。通常情况下,它只会在其他警告出现时才会产生,移除它允许添加一个 ISA 查找优化。

正在使用 v-string/require 不可移植

此警告已被移除。

子程序 "%s" 深度递归

现在可以通过重新编译 perl 二进制文件来更改此警告的深度阈值,默认值为 100,将 C 预处理器宏 PERL_SUB_DEPTH_WARN 设置为所需的值。

内部更改

新测试

许多从 CPAN 更新的模块包含新的测试。

一些可能在失败时永远挂起的测试现在包含了一个“看门狗”功能,它会在超时后杀死它们,这有助于确保 make testmake test_harness 自动运行完成。(Jerry Hedden)。

添加了一些特定于核心的测试

t/comp/retainedlines.t

检查调试器是否可以保留来自 eval 的源代码行。

t/io/perlio_fail.t

检查错误的层是否会失败。

t/io/perlio_leaks.t

检查 PerlIO 层是否没有泄漏。

t/io/perlio_open.t

检查某些特殊形式的 open 是否有效。

t/io/perlio.t

通用 PerlIO 测试。

t/io/pvbm.t

检查内部类型 PVBMPVGV 之间是否存在意外交互。

t/mro/package_aliases.t

检查 mro 在存在别名包的情况下是否正常工作。

t/op/dbm.t

针对 dbmopendbmclose 的测试。

t/op/index_thr.t

针对 index 和线程交互的测试。

t/op/pat_thr.t

针对深奥模式和线程交互的测试。

t/op/qr_gc.t

测试 qr 是否没有泄漏。

t/op/reg_email_thr.t

针对正则表达式递归和线程交互的测试。

t/op/regexp_qr_embed_thr.t

针对包含嵌入式 qr// 的模式和线程交互的测试。

t/op/regexp_unicode_prop.t

针对正则表达式中的 Unicode 属性的测试。

t/op/regexp_unicode_prop_thr.t

针对 Unicode 属性和线程交互的测试。

t/op/reg_nc_tie.t

测试 Tie::Hash::NamedCapture 的绑定方法。

t/op/reg_posixcc.t

检查 POSIX 字符类是否一致。

t/op/re.t

检查 universal.c 中可导出的 re 函数是否正常工作。

t/op/setpgrpstack.t

检查 setpgrp 是否正常工作。

t/op/substr_thr.t

测试 substr 和线程的交互。

t/op/upgrade.t

检查升级和分配标量是否正常工作。

t/uni/lex_utf8.t

检查词法分析器中的 Unicode 是否正常工作。

t/uni/tie.t

检查 Unicode 和 tie 是否正常工作。

已知问题

这是一个关于一些未修复的重大错误的列表,这些错误是相对于 5.10.0 或 5.8.x 的回归。

弃用

以下项目现在已弃用。

致谢

本版本中的一些工作由 TPF 资助。

Nicholas Clark 在 2008 年底正式从维护泵王职责中退休;然而,实际上,他从那时起付出了很多努力来帮助将 5.10.1 调整到可以发布的状态,包括编写了相当一部分的这个 perldelta。

特别感谢 Steffen Mueller 和 David Golden,他们帮助完善了 CPAN 模块,并使其与核心模块保持同步。

Craig Berry 不遗余力地让 maint 在 VMS 上运行,无论我们多少次把它搞坏。

其他核心提交者贡献了大部分更改,并应用了数百位贡献者(列在 AUTHORS 中)提交的大部分补丁。

(对所有未被我点名的人表示歉意)。

最后,感谢 Larry Wall,没有他,这一切都不可能实现。

报告错误

如果您发现疑似错误,请查看最近发布到 comp.lang.perl.misc 新闻组的文章和 http://rt.perl.org/perlbug/ 上的 Perl 错误数据库。您也可以在 Perl 主页 https://www.perl5.cn/ 上找到相关信息。

如果您认为您遇到了未报告的错误,请运行随您的发行版提供的 perlbug 程序。请务必将您的错误缩减为一个微小但足以说明问题的测试用例。您的错误报告以及 perl -V 的输出将被发送到 [email protected],由 Perl 移植团队进行分析。

如果您要报告的错误涉及安全问题,不适合发送到公开存档的邮件列表,请将其发送到 [email protected]。此地址指向一个封闭订阅的未存档邮件列表,其中包括所有核心提交者,他们将能够帮助评估问题的影响,找出解决方案,并帮助协调在所有支持 Perl 的平台上发布补丁以减轻或修复问题。请仅将此地址用于 Perl 核心中的安全问题,不要用于 CPAN 上独立分发的模块。

另请参阅

Changes 文件,其中解释了如何查看有关更改的详尽信息。

INSTALL 文件,其中介绍了如何构建 Perl。

README 文件,其中包含一般信息。

ArtisticCopying 文件,其中包含版权信息。