目錄

名稱

perl587delta - Perl v5.8.7 的新功能

描述

本文件描述了 5.8.6 版本與 5.8.7 版本之間的差異。

不相容的更改

與 5.8.6 不相容的更改沒有。

核心增強

Unicode 字元資料庫 4.1.0

Perl 5.8 中包含的 Unicode 字元資料庫已從 4.0.1 更新為 4.1.0。請參閱 http://www.unicode.org/versions/Unicode4.1.0/#NotableChanges 以獲取重要更改的詳細資訊。

suidperl 更不安全

關於 suidperl 的一對利用調試代碼的漏洞已被修復。

對於新項目,核心 perl 團隊強烈建議您使用專用的、單一用途的安全工具,如 sudo,而不是 suidperl

Config.pm 現在更小。

Config.pm 現在約為 3K,而不是 32K,少量使用的代碼和 %Config 值按需加載。這對程序員來說是透明的,但意味著大多數代碼將節省解析和加載 29K 的腳本(例如,使用 File::Find 的代碼)。

模組和 Pragmata

實用程序變更

find2perl 增強

find2perl 現在具有新的選項 -iname-path-ipath

性能增強

現在在 ithreads 克隆期間使用的內部指針映射哈希現在使用一個區域來進行內存分配。在測試中,這將 ithreads 克隆時間減少了約 10%。

安裝和配置改進

已選錄補丁

新增或更改的診斷

新增了一個新的污染錯誤,"%ENV 被別名為 %s"。當啟用污染檢查並且已將 *ENV 別名,以致於 %ENV 不再具有環境魔術,因此無法驗證為不受污染時,將拋出此錯誤。

packunpack 的內部已更新。所有合法的模板應該像以前一樣工作,但在複雜失敗案例的錯誤報告中可能會有一些變化。對於非錯誤案例的任何行為變化都是錯誤,應該進行報告。

內部更改

C 源代碼經過了相當多的重構,部分是為了使其更整潔和更易於維護。生成的目標代碼和 perl 二進制文件可能比 5.8.6 要小,希望在某些情況下速度更快,但除此之外,不應該有用戶可檢測到的變化。

新增了 ${^UTF8LOCALE} 以便 perl 空間訪問 PL_utf8locale

用於分配 SV 頭和大多數 SV 主體的區域的大小現在可以在編譯時更改。舊的大小為 1008 字節,新的默認大小為 4080 字節。

已知問題

從重載運算符返回的 Unicode 字符串可能存在錯誤。這是自 5.8.6 發布以來報告的一個長期存在的問題,但我們尚未找到合適的修復方法。

特定平台的問題

在 UNICOS 上,lib/Math/BigInt/t/bigintc.t 會使 CPU 高占用。ext/B/t/bytecode.t 和 ext/Socket/t/socketpair.t 兩者都無法通過測試。這些問題不太可能解決,因為我們勇敢的 UNICOS 移植者的最後一台 Cray 即將退役。

報告錯誤

如果您發現了您認為是錯誤的問題,您可以檢查最近發表在 comp.lang.perl.misc 新聞組和 perl bug 數據庫(http://bugs.perl.org)上的文章。Perl 主頁(http://www.perl.org)上可能還有信息。

如果您認為您有一個未報告的錯誤,請運行隨附您版本的 perlbug 程序。請確保將您的錯誤縮小到一個足夠小但足夠的測試案例。您的錯誤報告以及 perl -V 的輸出將被發送到 perlbug@perl.org 以供 Perl 移植團隊分析。您可以在 http://bugs.perl.org/ 上瀏覽和搜索 Perl 5 的錯誤。

參見

詳細的更改信息請參見 Changes 文件。

關於如何建置 Perl 的 INSTALL 檔案。

一般資訊的 README 檔案。

版權資訊的 ArtisticCopying 檔案。