目錄

名稱

perl589delta - perl v5.8.9 的新功能

描述

本文件描述了 5.8.8 版本與 5.8.9 版本之間的差異。

注意

5.8.9 版本將是 5.8.x 系列的最後一個重要版本。未來的 5.8.x 版本可能只會用於處理安全問題和平台構建失敗。因此,如果您還沒有開始,您應該考慮遷移到 5.10.x。請參見“已知問題”以獲取更多信息。

不相容的更改

在 C++ 中編寫的擴展源代碼中可能需要更改特定的構造。有關詳細信息,請參見“已更改的內部結構”。所有用 C 編寫的擴展,大多數用 C++ 編寫的擴展,以及所有現有的編譯擴展都不受影響。這是為了改進 C++ 支援。

除此之外,沒有故意與 5.8.8 不兼容的更改。如果有任何存在,它們就是錯誤,歡迎報告。

核心增強

Unicode 字元資料庫 5.1.0。

Perl 5.8 中所包含的 Unicode 字符數據庫副本已從 4.1.0 更新至 5.1.0。請參閱 http://www.unicode.org/versions/Unicode5.1.0/#NotableChanges 以查看重要更改。

目錄處理程序上的 stat 和 -X

現在可以在目錄處理程序上調用 stat-X 文件狀態運算符。由於目錄和文件處理程序都是裸字,因此可能會導致有關所需處理程序的歧義。在這些情況下,將優先考慮文件處理程序語義。兩者還將 *FILE{IO} 文件處理程序視為 *FILE 文件處理程序。

在 @INC 中的源碼過濾器

現在可以通過在鉤子返回的文件處理程序上添加源碼過濾器來增強 @INC 中的子程序鉤子機制。這個功能早就計劃好了,但直到現在才真正發揮作用。有關詳細信息,請參見 "require" in perlfunc。(Nicholas Clark)

常量折疊中的異常

常量折疊例程現在包裹在異常處理程序中,如果折疊引發異常(例如試圖評估 0/0),perl 現在會保留當前的 optree,而不是中止整個程序。沒有這個更改,如果程序中有產生異常的表達式,則它們在運行時永遠不會被執行,那些程序將無法編譯。(Nicholas Clark,Dave Mitchell)

no VERSION

現在可以使用 no 後跟版本號來指定您要使用比指定版本舊的 perl 版本。

改進的內部 UTF-8 緩存代碼

用於緩存字符串中字符偏移量的計算的代碼已被重寫。已經定位並消除了幾個錯誤,現在該代碼更好地利用了它所擁有的信息,因此應該更快。特別是,它不會在計算字符串內的偏移量之前掃描字符串的末尾,這應該加快對長字符串的某些操作。現在可以在運行時禁用緩存代碼,以驗證它是否不是懷疑問題的原因。

執行時可重新定位的安裝

現在支援使用Configure在執行時建立可重新定位的 Perl 樹。請參閱"可重新定位的安裝"

新內部變數

${^CHILD_ERROR_NATIVE}

此變數提供最後一次管道關閉、反引號命令、成功調用waitwaitpid,或從system運算子返回的本機狀態。有關詳細信息,請參閱perlvar。(由 Gisle Aas 貢獻。)

${^UTF8CACHE}

此變數控制內部 UTF-8 偏移緩存代碼的狀態。1 表示啟用(默認值),0 表示禁用,-1 表示通過對所有結果進行線性掃描來調試緩存代碼,並在任何差異時恐慌。

readpipe現在可以被覆寫

內置函數readpipe現在可以被覆寫。覆寫它也允許覆寫其運算子對應物,qx//(也稱為``)。

簡單的例外處理宏

Perl 5.8.9(以及 5.10.0 後續版本)現在提供了一些宏來在 XS 模塊中進行非常基本的例外處理。如果您調用可能會croak的代碼,但需要在將控制權返回給 Perl 之前進行一些清理,則可以使用這些宏。有關更多詳細信息,請參閱perlguts 中的“例外處理”

-D 選項增強

由 XS 協助的 SWASHGET

某些正則表達式引擎正在使用的純 Perl 代碼以加快執行速度重新實現為 XS。這些代碼用於檢索 Unicode 屬性和轉換映射。(SADAHIRO Tomoyuki)

常量子程序

解釋器內部現在支援一種更加節省內存的內嵌常量形式。將對常量值的引用存儲在符號表中等同於一個完整的引用常量子程序,但使用的內存約少 400 個字節。如果必要,此代理常量子程序將自動升級為具有子程序的真實符號表。所採取的方法類似於用於子程序存根聲明的現有空間優化,其存儲為普通純量,而不是完整的符號表。

然而,為了幫助現有代碼的向後兼容性,該特性(錯誤地)不期望在符號表中除了類型糾結之外的任何東西,核心中沒有使用此功能,除了回歸測試。

從5.005開始,原型化子程式的存根已經以純字符串形式存儲在符號表中,而未原型化的子程式的存根則為-1,因此假設核心只在符號表中放置類型糾結的代碼已經做出了超過10年的錯誤假設。

新平台

新增編譯支持:

模組與Pragmata

新模組

更新的模組

實用工具變更

調試器升級至版本 1.31

perlthanks

Perl 5.8.9 新增了一個新的實用工具 perlthanks,這是 perlbug 的一個變體,用於向 Perl 的作者和維護者發送非錯誤報告。只收到錯誤報告可能會讓人感到有點沮喪 - 我們將看看這是否會改變情況。

perlbug

perlbug 現在會檢查您是否在報告非核心模塊,並建議您將其報告給 CPAN 作者。

h2xs

h2ph

新文檔

像往常一樣,文檔進行了修正、澄清和其他小修復。為索引添加了更多 標籤。

perlunitut 是由 Juerd Waalboer 撰寫的關於 Unicode 相關術語以及如何在 Perl 腳本中正確處理 Unicode 的教程。

perlunicode 在用戶定義屬性部分進行了更新。

perluniintro 在檢測特定編碼中無效數據的示例中進行了更新。

perlcommunity 提供了 Perl 社區的概述以及更多資源。

CORE 文檔是關於 Perl 核心例程的虛擬命名空間的。

現有文件更動

perlglossary 新增了已棄用的模組和功能以及待捨棄的模組

perlhack 已更新並新增了關於煙測的資源。

Perl 常見問題(perlfaq1..perlfaq9)已更新。

perlcheat 更新了有關\w\d\s的詳細資訊。

perldebug 更新了有關如何調用除錯器的資訊。

perldiag 文件更新了對於 existsdelete 的參數為具有和符號的子程式的說明,並且還更新了有關警告的一些術語。

perlfork 文件記載了偽進程內部 exec 的限制。

perlfunc:

perllocale 文件調整了數字本地化和 POSIX::setlocale,以修復 Debian bug #379463。

perlmodlib 已更新包括 CPAN::API::HOWTOSys::Syslog::win32::Win32

perlre 文件更新以反映 [[:xxxxx:]]\p{IsXxxxx} 匹配之間的差異。還新增了關於 /g/c 修飾符的部分。

perlreguts 描述了正則表達式引擎的內部結構。由Yves Orton提供。

perlrebackslash 描述了所有 perl 正則表達式反斜線和逸出序列。

perlrecharclass 描述了 Perl 正則表達式中字符類的語法和用法。

perlrun 更新以澄清雜湊種子 PERL_HASH_SEED。還有有關選項 -x-u 的更多資訊。

perlsub 中的範例已更新以使用 opendir 語法的詞法變數。

perlvar 修正了關於實際 GID $( 和有效 GID $) 的混淆。

"Queues: Passing Data Around" in perlthrtutperlthrtut 中修正了 Perl 线程教程的範例。

perlhack 文件由Jarkko Hietaniemi和其他人大幅改善。

perltoot 提供了修改 @UNIVERSAL::ISA 的資訊。

perlport 文件擴展了在 Windows 上不同 kill(-9, ...) 語義的說明。它也清楚地指出在 Win32 和 cygwin 上不支援 dump

INSTALL 已更新並現代化。

性能增強

安裝和配置改進

可重定位安裝

現在有 Configure 支持用於創建可重定位的 perl 樹。如果您使用 -Duserelocatableinc 進行 Configure,那麼 @INC 中的路徑(以及 %Config 中的所有其他內容)可以選擇通過 perl 執行文件的路徑來定位。

在開始時間時,如果 @INCConfig 中的任何路徑被 Configure 標記為可重定位(通過以 ".../" 開頭),則它們將被前置到 $^X 的目錄。這允許可以按目錄設置重定位,儘管使用 -Duserelocatableinc 默認情況下一切都會被重定位。初始安裝是在原始配置的前綴下完成的。

配置改進

Configure 現在更善於刪除臨時文件。Tom Callaway(來自紅帽公司)還貢獻了完善傳遞給編譯器和鏈接器的標誌集合的補丁,特別是現在在 Linux 上啟用了 -fPIC。當您的 /dev/null 不是設備時,它也會拋出異常。

一個新的配置變量 d_pseudofork 已添加到 Configure 中,並在 Config 模塊中可用作 $Config{d_pseudofork}。這將真實的 fork 支持與在 Windows 平台上使用的偽分叉仿真區分開來。

Config.podconfig.sh 現在正確放置以用於交叉編譯。

$Config{useshrplib} 現在在使用共享 perl 库時為 'true' 而不是 'yes'。

編譯改進

並行製作現在應該正常工作,儘管如果指示 make test 並行運行仍可能存在問題。

已清理許多編譯警告。在六次嘗試後,S_emulate_eaccess() 中的一個非常頑固的編譯器警告已被解決。特別為 FreeBSD 調整了 g++ 支持。

mkppport 已集成,並且核心中的所有 ppport.h 文件現在將在構建時自動生成(並在清理期間刪除)。

安裝改進

installman 現在與 -DuserelocatableincDESTDIR 一起工作。

installperl 不再安裝

特定平台的更改

對於 AIX、Cygwin、DEC/OSF、FreeBSD、HP/UX、Irix 6 Linux、MachTen、NetBSD、OS/390、QNX、SCO、Solaris、SunOS、System V Release 5.x(UnixWare 7、OpenUNIX 8)、Ultrix、UMIPS、uts 和 VOS,都有改進的提示。

FreeBSD

Solaris

VMS

Windows

選定的錯誤修復

Unicode

已經修復了許多與內部 Unicode 實現(UTF-8)相關的錯誤。特別是,已解決了與通過tie、重載或$@返回 Unicode 相關的長期存在的錯誤,其中一些從未報告過。

unpack將在數字類型上內部將字符串從 UTF-8 轉換回來。這是在 5.10 中完全一致性與當前行為之間的一個妥協,當前行為通常被用作字符串類型的“功能”。

使用:crlfUTF-16 IO 層一起現在可以運作。

修正了split,Unicode /\s+// \0/ 的問題。

修正了 RT #40641 號錯誤 - 正則表達式中 Unicode 字元的編碼。

修正了在正則表達式中使用特定模式導致恐慌的錯誤。[RT #45337]

如果區域設置的字符不是 UTF-8,Perl 將不再因內部無限遞歸而崩潰。[RT #41442]

use open ':locale';
print STDERR "\x{201e}"; # „

PerlIO

已修復 PerlIO 使用的參考計數不一致問題,用於跟踪 Unix 文件描述符的 API 以及 XS 代碼用於獲取和釋放FILE *s。

Magic

已修復 Magic 中的一些錯誤,該內部系統用於實現 tie、污染和線程共享等功能。

對於綁定數組,現在正確調用CLEAR方法。

一些位操作未在使用之前檢查其參數是否具有魔法。[RT #24816]

表達式\&$x不再兩次調用 Magic。

解決了分配大數字和污染的錯誤。[RT #40708]

在 MAGIC vtable 中添加了一個新條目 - svt_local。這在 local 過程中將魔法復制到新值時使用,從而解決了本地化共享變量的某些問題。

有關實現細節,請參見“perlguts”中的“魔法虛擬表”

重新賦予超載對象現在運作正常

內部上,perl 對象性是在引用上,而不是在參考上,儘管方法只能通過參考調用。然而,重載的原始實現存儲了與重載有關的標誌,這些標誌是基於引用的,依賴於在引用被複製時將標誌複製,或者在創建新引用時設置。這表現在一個錯誤中 - 如果從具有重載的類重新賦予對象到不具有重載的類,則任何其他現有引用認為它們(仍然)指向一個已重載的對象,選擇這些 C 代碼路徑,然後拋出錯誤。類似地,當其他引用存在時賦予一個重載的類將導致它們不使用重載。

實作已經在 5.10 版本中修復,但這個修正改變了標誌位元的語義,因此不是二進位相容的,因此無法應用於 5.8.9 版本。然而,5.8.9 版本有一個解決方法,實現了相同的錯誤修復。如果參照物具有多個引用,則會定位並更正所有其他引用。在可能的情況下,通過從當前子程序和參數堆疊向外掃描詞彙,來避免進行全面搜索。

某個眾所周知的 Linux 供應商對他們的 /usr/bin/perl 應用了此錯誤修復的不完整版本,然後在未諮詢上游的情況下,提前關閉了關於性能問題的 bug 報告。這還不夠,他們隨後又忽略了對這些未發布的更改進行必要修復,直到長期付費客戶施加了巨大壓力,這些失敗被放在一個知名博客和 Slashdot 上。

strict 現在正確地傳播到字串評估中

在 5.8.8 及之前的版本中

$ perl5.8.8 -e 'use strict; eval "use foo bar" or die $@'
Can't locate foo.pm in @INC (@INC contains: ... .) at (eval 1) line 2.
BEGIN failed--compilation aborted at (eval 1) line 2.

在 5.8.9 及之後的版本中

$ perl5.8.9 -e 'use strict; eval "use foo bar" or die $@'
Bareword "bar" not allowed while "strict subs" in use at (eval 1) line 1.

這可能會導致解析錯誤訊息並依賴於錯誤行為的程式出現問題。

其他修復

平台特定的修復

達爾文 / MacOS X

OS/2

Tru64

紅帽 Linux

Solaris/i386

VMS

Windows

較小的修正

新的或更改的診斷

panic: sv_chop %s

當 C 程序 Perl_sv_chop() 被傳遞了不在純量字符串緩衝區內的位置時,將會出現此新的致命錯誤。這是由於有缺陷的 XS 代碼引起的,目前無法恢復。

超出待處理信號的最大計數(%s)

當 perl 進程由於過多的待處理信號而不得不中止時,會發生這個新的致命錯誤,這將阻止 perl 能夠安全處理進一步的信號。

panic: 嘗試在 %s 中呼叫 %s

當 ACL 版本文件測試操作符在當前平台上不可用時,會發生這個新的致命錯誤。先前的檢查意味著這應該是不可能發生的。

FETCHSIZE 返回了一個負值

新的錯誤表明綁定的數組聲稱擁有負數個元素。

無法將 %s (%d) 升級為 %d

以前來自 SV 升級代碼的內部錯誤較不具信息性,現在它報告了當前的內部類型以及所請求的新類型。

%s 參數不是 HASH 或 ARRAY 元素或子例程

如果向 exists 提供了無效的參數,則會拋出此錯誤,現在正確地包括了「或一個子例程」。[RT#38955]

無法使不可覆蓋的內建函數 %s 致命

Fatal 中的此錯誤以前不顯示所討論的內建函數的名稱(現在由上面的 %s 表示)。

在第 %d 列中無法識別字符 '%s'

這個錯誤以前沒有說明列。

字符串外的偏移

現在,這也可以由使用 PerlIO::scalar 的文件處理程序上的 seek 生成。

在正則表達式中指定的編碼中的無效轉義; 在 m/%s/ 中標記為 <-- HERE

新錯誤,作為修復 RT#40641 的一部分引入,以處理正則表達式註釋中的 Unicode 字符的編碼。

您的機器不支持 dump/undump。

在 Win32 和 Cygwin 上調用 dump 時發出更多信息的致命錯誤。(鑑於 dump 的目的是通過核心轉儲中止,而這些平台上無法生成核心轉儲,這比靜默退出更有用。)

已更改的內部結構

現在可以使用 C++ 編譯器而不是 C 編譯器編譯 perl 源代碼。一個必要的實現細節是,在 C++ 中,用於定義 XSUBs 的宏 XS 現在包括一個 extern "C" 定義。這樣做的副作用是,使用此結構的 C++ 代碼

typedef XS(SwigPerlWrapper);

現在需要

typedef XSPROTO(SwigPerlWrapper);

使用新的 XSPROTO 宏來編寫,以便編譯。 C 擴展不受影響,儘管建議 C 擴展也使用 XSPROTO。這個改變已經存在於 perl 的 5.10.0 版本中,因此任何已經使用此結構的活躍維護的代碼應該已經適應。需要更改的代碼將在編譯時失敗並產生編譯錯誤。

對於將魔法變量本地化/分配的 set 魔法現在只會觸發 容器魔法,即對 %ENV%SIG,但不會對 $#array

新的 API 宏 newSVpvs() 可以用於替代 newSVpvn("ISA", 3) 等結構。它接受一個字符串常量,在 C 編譯時確定其長度。

新的 API 函数 Perl_newSV_type() 可以用作常見習慣的更有效替代

sv = newSV(0);
sv_upgrade(sv, type);

同樣,Perl_newSVpvn_flags() 可以用於將 Perl_newSVpv()Perl_sv_2mortal() 或等效的 Perl_sv_newmortal()Perl_sv_setpvn() 結合使用

添加了兩個新的宏 mPUSHs()mXPUSHs(),以使將可死亡的 SV 推送到堆棧變得更容易。然後,它們用於修復了幾個堆棧中的值尚未死亡的錯誤。

添加了一個 Perl_signbit() 函數來測試 NV 的符號。當系統提供時,它映射到系統中的一個。

Perl_av_reify()Perl_lex_end()Perl_mod()Perl_op_clear()Perl_pop_return()Perl_qerror()Perl_setdefout()Perl_vivify_defelem()Perl_yylex() 現在對擴展可見。這是允許 Data::Alias 在 Windows 上工作所必需的。

Perl_find_runcv() 現在對 perl 核心擴展可見。這是允許 Sub::Current 在 Windows 上工作所必需的。

在非線程 perl 中現在可以使用 ptr_table* 函數。 Storable 利用了這一點。

內部進行了許多小的清理。特別是,Perl_sv_upgrade() 大幅簡化,使用直通代碼路徑,通過 memset()memcpy() 初始化新主體,而不是通過多個臨時變量進行賦值。它還從簡化和去重的競技場管理代碼中受益。

由於 Coverity 靜態代碼分析器的報告,代碼庫中進行了許多小的改進。

修正了 Perl_gv_stashpv()Perl_gv_stashpvn()Perl_gv_stashsv() 函數的使用和文檔 (最後一個參數是位掩碼,而不是布爾值)。

PERL_SYS_INITPERL_SYS_INIT3PERL_SYS_TERM 宏已更改為函數。

PERLSYS_TERM 不再需要上下文。現在在沒有上下文的情況下調用 PerlIO_teardown(),並且此函數中的調試輸出已被禁用,因為這要求解釋器存在,這是一個無效的假設。

所有影響二進制兼容性的編譯時選項已經被分組到一個全局變量中 (PL_bincompat_options)。

PERL_REVISIONPERL_VERSIONPERL_SUBVERSION 的值現在嵌入到全局變量中(因此也嵌入到任何共享的 Perl 库中)。此外,在 MULTIPLICITY 下,perl 可執行文件現在記錄解釋器結構的大小(總大小,以及本版本的大小)。配合 PL_bincompat_options,這將允許 5.8.10(以及更高版本),當編譯使用共享 Perl 库時,在 main() 中執行健全性檢查,以驗證共享庫確實與二進制兼容。

符號引用現在可以包含嵌入的 NULs。如果必須處理它們,則可以在擴展中使用新的公共函數 Perl_get_cvn_flags()

宏清理

核心代碼和不在 CPAN 上雙重存在的 XS 代碼已不再使用宏 PL_naNEWSV()Null()NullavNullcvNullhv 等等。在新代碼中不建議使用它們,特別是 PL_na,這對性能有輕微影響。

新測試

許多從 CPAN 更新的模塊都包含新的測試。添加了一些核心特定的測試。

ext/DynaLoader/t/DynaLoader.t

DynaLoader 模塊的測試。

t/comp/fold.t

編譯時常量摺疊的測試。

t/io/pvbm.t

從5.10.0中引入的測試,檢查內部類型PVBMPVGV之間是否有意外的交互作用。

t/lib/proxy_constant_subs.t

常量子程序的新形式的測試。

t/op/attrhand.t

Attribute::Handlers的測試。

t/op/dbm.t

dbmopen的測試。

t/op/inccode-tie.t

在首次綁定@INC之後調用t/op/inccode.t中的所有測試。

t/op/incfilter.t

來自@INC中代碼引用的源代碼過濾器的測試。

t/op/kill0.t

RT #30970的測試。

t/op/qrstack.t

RT #41484的測試。

t/op/qr.t

qr//構造的測試。

t/op/regexp_qr_embed.t

另一個正則表達式內部的qr//構造的測試。

t/op/regexp_qr.t

qr//構造的測試。

t/op/rxcode.t

RT #32840的測試。

t/op/studytied.t

對綁定到標量的study的測試。

t/op/substT.t

-T模式下運行的subst的測試。

t/op/symbolcache.t

對綁定到子程序或方法的符號表條目的undefdelete的測試。

t/op/upgrade.t

Perl_sv_upgrade()的測試。

t/mro/package_aliases.t

isa和包別名的MRO測試。

t/pod/twice.t

兩次調用Pod::Parser的測試。

t/run/cloexec.t

測試在exec(close-on-exec)中跨文件描述符繼承的測試。

t/uni/cache.t

UTF-8緩存代碼的測試。

t/uni/chr.t

確保奇怪的編碼不會干擾Perl_pp_chr()

t/uni/greek.t

RT #40641的測試。

t/uni/latin2.t

RT #40641的測試。

t/uni/overload.t

從重載的值返回Unicode的測試。

t/uni/tie.t

從綁定變量返回Unicode的測試。

已知問題

目前沒有已知的新錯誤。

然而,依賴已經修復的錯誤的程序將會遇到問題。此外,許多在5.10.0中修復的錯誤無法回溯到5.8.x分支,因為它們需要不相容的二進制更改,或者因為代碼更改太大而太危險,無法納入其中。

我們只有有限的志願者勞動力,而維護負擔正在變得越來越複雜。因此,這將是5.8.x系列的最後一個重要發布版本。未來的5.8.x版本可能只用於處理安全問題和平台構建失敗。因此,如果尚未開始,您應該考慮遷移到5.10.x。或者,如果商業需求限制您繼續使用5.8.x,您可能希望考慮從ActiveState等公司獲得商業支持。

特定平台注意事項

Win32

readdir()cwd()$^X@INC現在如果長名稱在當前代碼頁之外則使用替代(短)文件名(Jan Dubois)。

更新的模組

OS/2

更新的模組

VMS

更新的模組

訃告

Nick Ing-Simmons,長期的 Perl 駭客,TkEncode 模組的作者,核心中的 perlio.c,以及 5.003_02 的 pumpking,在 2006 年 9 月 25 日心臟病發作去世。他將被惦念。

致謝

這個版本的一些工作是由 TPF 資助的。

Steve Hay 在幕後工作,找出核心模組、它們的 CPAN 發布以及先前核心版本之間差異的原因,以及糾正它們的最佳方法。他不想再次做這件事。我理解這種感覺,我很高興他這次做了,而不是我。

Paul Fenwick 組建了一個由 18 名志願者組成的團隊,他們完成了這份文件的大部分工作。特別是,Bradley Dean、Eddy Tan 和 Vincent Pit 提供了團隊一半的貢獻。

Schwern 核對了更新模組版本的清單,更正了我(和所有其他人)錯過的許多錯誤,包括錯誤聲明的模組版本和未列出的更改模組。

位於柏林的 QA 團隊 Andreas König 和 Slaven Rezic 不辭辛勞地重建快照,對幾乎所有 CPAN 進行測試,然後識別導致任何模組回歸的更改,確保在第一個發布候選版本之前解決了幾個阻止發布的致命錯誤。

其他核心貢獻者貢獻了大部分變更,並應用了由《AUTHORS》中列出的數百名貢獻者發送的大部分補丁。

當然,沒有 Larry Wall,我們就不會有 Perl。

報告錯誤

如果您發現了您認為是錯誤的內容,您可以檢查最近在 comp.lang.perl.misc 新聞組和 perl 錯誤數據庫 http://bugs.perl.org 張貼的文章。也許在 http://www.perl.org,Perl 的主頁上也有相關資訊。

如果您認為自己有未報告的錯誤,請執行隨附於您的版本的 perlbug 程式。請務必將您的錯誤簡化為一個小而足夠的測試案例。您的錯誤報告將連同 perl -V 的輸出一起發送到 perlbug@perl.org,以便由 Perl 移植團隊進行分析。您可以在 http://bugs.perl.org/ 瀏覽和搜索 Perl 5 的錯誤。

如果您報告的錯誤具有安全影響,使其不適合發送到公開存檔的郵件列表,那麼請將其發送到 perl5-security-report@perl.org。這將指向一個已關閉訂閱未存檔的郵件列表,其中包括所有核心提交者,他們將能夠幫助評估問題的影響,找出解決方案,並協調釋出補丁以減輕或修復跨所有 Perl 支持的平台上的問題。請只在 Perl 核心中使用此地址來報告安全問題,而不是獨立分佈在 CPAN 上的模塊。

參見

有關詳細更改的 Changes 檔案。

有關如何構建 Perl 的 INSTALL 檔案。

一般資訊的 README 檔案。

版權資訊的 ArtisticCopying 檔案。