perl5141delta - perl v5.14.1 的新功能
本文檔說明 5.14.0 版本與 5.14.1 版本之間的差異。
如果您要從較早的版本(例如 5.12.0)升級,請先閱讀 perl5140delta,其中說明 5.12.0 與 5.14.0 之間的差異。
自 5.14.0 以來沒有變更。
自 5.14.0 以來沒有變更。
沒有任何變更會與 5.14.0 故意不兼容。如果存在任何不兼容的變更,它們都是錯誤,歡迎回報。
自 5.14.0 以來沒有任何已棄用的功能。
無
B::Deparse 已從版本 1.03 升級至 1.04,以解決 Perl 5.14.0 中的兩個回歸。
glob
運算子及其菱形 (<>
) 形式的去解析現在又可以運作了。[perl #90898]
不再會因為存在名為 ::::
或 ::::::
的子常式而導致 B::Deparse 停滯。
Pod::Perldoc 已從版本 3.15_03 升級至 3.15_04。
它修正了 VMS 上的搜尋路徑。[perl #90640]
無
無
given
、when
和 default
現在列在 perlfunc 中。
use
的文件現在包含指向 if.pm 的指標。
perllol 已擴充,包含 Perl 5.14.0 中引入的新 push $scalar
語法範例。
位元運算子的說明已擴充,以說明它們如何運作於 Unicode 字串。
關於三點運算子或 yada-yada 運算子的章節已向上移動,因為它原本隔開了關於逗號運算子的兩個密切相關章節。
已新增更多 m//g
的範例。
已記錄 <<\FOO
here-doc 語法。
perlrun 已進行大幅度的清理。最值得注意的是,-0 旗標的 -0x... 形式已獲得澄清,而關於環境變數的最後一個章節已獲得修正和擴充。
已修正 WIFEXITED
、WEXITSTATUS
、WIFSIGNALED
、WTERMSIG
、WIFSTOPPED
和 WSTOPSIG
的呼叫文件。
已對診斷輸出(包括警告和致命錯誤訊息)進行下列新增或變更。有關診斷訊息的完整清單,請參閱 perldiag。
無
無
無
已修改 regexp.h 以相容於 GCC 的 -Werror
選項,這項選項由包含 Perl 標頭檔的某些專案使用。
已修正 dist/Locale-Maketext/t/09_compile.t 中可能會因環境而發生的某些測試失敗。[perl #89896]
已延長 t/re/re.t 的看門狗計時器,以容納在舊計時器用完之前無法完成測試的 SH-4 系統。
無
無
已修正文件,其中列出在 Solaris 9 和 Solaris 10 上建置 Perl 所需的 Solaris 套件。
已更新 lib/locale.t 測試指令碼,使其能在即將推出的 Lion 版本上執行。
已釐清 Mac OS X 特定的編譯說明。
已使用 Ubuntu natty 上的新程式庫路徑更新 ODBM_File 安裝程序。
格式的編譯表示形式現在透過其 PERL_MAGIC_fm 的 mg_ptr 儲存。以前它儲存在字串緩衝區中,超出 SvLEN(),也就是字串的常規結尾。SvCOMPILED() 和 SvCOMPILED_{on,off}() 現在僅存在於 XS 程式碼的相容性中。第一個永遠是 0,後兩個現在為無動作。
已修正一個錯誤,如果要反覆運算的後兩個雜湊元素被刪除,則會導致「反覆運算中使用已釋放的值」錯誤。[perl #85026]
將相同的常數子常式傳遞給 index
和 formline
不會再導致其中一個或兩個失敗。[perl #89218]
5.14.0 在正則表示式字元類別中引入了某些記憶體外洩,例如 [\w\s]
,這些問題現已修正。
正則表示式比對中的邊界情況可能會形成迴圈。這只會在括號字元類別中,在 /i
下發生,這些字元類別具有多個字元摺疊,而要比對的目標字串包含摺疊的第一部分,接著是另一個具有多個字元摺疊的字元,該摺疊以摺疊的剩餘部分開始,外加更多內容。
"s\N{U+DF}" =~ /[\x{DF}foo]/i
是一個這樣的案例。\xDF
摺疊為 "ss"
。
已修正了多個 Unicode 大小寫摺疊錯誤。
5.14.0 中新的正則表示式修改符號 /a
,當重複使用時,例如 /aa
,會禁止 ASCII 範圍外的字元與該範圍內的字元相符,並在 /i
下進行比對。在某些情況下,這並不起作用,所有情況都涉及交替,例如
"\N{KELVIN SIGN}" =~ /k|foo/iaa;
不適當地成功。這現在已修正。
修正了一個案例,在解析 here 文件時,有可能從已釋放的緩衝區中讀取資料。
Perl 5.14.1 代表自 Perl 5.14.0 以來大約四週的開發時間,包含 17 位作者在 38 個檔案中約 3500 行的變更。
Perl 持續在第三個十年蓬勃發展,這要歸功於一個充滿活力的使用者和開發人員社群。已知以下人員貢獻了改善,這些改善成為了 Perl 5.14.1
Bo Lindbergh、Claudio Ramirez、Craig A. Berry、David Leadbeater、Father Chrysostomos、Jesse Vincent、Jim Cromie、Justin Case、Karl Williamson、Leo Lapworth、Nicholas Clark、Nobuhiro Iwamatsu、smash、Tom Christiansen、Ton Hospel、Vladimir Timofeev 和 Zsbán Ambrus。
如果您發現您認為是錯誤的問題,您可能會查看最近張貼到 comp.lang.perl.misc 新聞群組的文章和 http://rt.perl.org/perlbug/ 上的 perl 錯誤資料庫。在 Perl 首頁 http://www.perl.org/ 上也可能會有資訊。
如果您認為您有一個未回報的錯誤,請執行您的版本中包含的 perlbug 程式。務必將您的錯誤簡化為一個微小但足夠的測試案例。您的錯誤回報,連同 perl -V
的輸出,將會傳送至 perlbug@perl.org,供 Perl 移植團隊分析。
如果您回報的錯誤具有安全性影響,不適合傳送至公開封存的郵件清單,請將其傳送至 perl5-security-report@perl.org。這會指向一個封閉訂閱、未封存的郵件清單,其中包含所有核心提交者,他們能夠協助評估問題的影響、找出解決方案,並協助協調在 Perl 受支援的所有平台上發布修補程式以減輕或修復問題。請僅將此地址用於 Perl 核心的安全性問題,而不是用於在 CPAN 上獨立發布的模組。
Changes 檔案說明如何檢視已變更內容的詳盡資料。
INSTALL 檔案說明如何建置 Perl。
README 檔案說明一般事項。
Artistic 和 Copying 檔案說明著作權資訊。