Perl 7 將無縫地繼續 Perl 5 的開發,而不會破壞向後相容性

Perl 專案管理委員會概述了進一步開發 Perl 5 分支和創建 Perl 7 分支的計劃。在討論中,管理委員會同意破壞與已經為 Perl 5 編寫的程式碼的兼容性是不可接受的,除非破壞相容性對於修復漏洞是必要的。 理事會也得出結論,語言應該不斷發展,新功能應該更深入地推廣,同時使新興創新更容易獲得並鼓勵採用。

與允許在 Perl 7 分支中預設包含破壞向後相容性的變更的初衷不同,新計劃是在不破壞與現有程式碼的向後相容性的情況下逐步將 Perl 5 分支過渡到 Perl 7。 Perl 7.0 版本在概念上與下一個 Perl 5.xx 分支沒有什麼不同。

Perl 5 新版本的開發將像以前一樣繼續- 添加到分支的與舊程式碼不相容的新功能將像以前一樣,只有在明確指定「使用版本」或「使用功能特性」編譯指示時才會包含在內在程式碼中。 例如,Perl 5.010 引入了一個新關鍵字“say”,但由於現有程式碼可以使用名為“say”的函數,因此只能透過明確指定“use feature 'say'”編譯指示來啟用對新關鍵字的支持。

新增至該語言中的新語法(在先前的版本中處理時會導致錯誤)立即可用,無需指定特殊的編譯指示。 例如,Perl 5.36 將引入一種簡化的語法,用於一次處理多個列表值(“foreach my ($key, $value) (%hash) {”),即使在沒有“use v5.36” 雜注。

在目前形式中,Perl 5.36 使用「use v5.36」編譯指示來啟用13 個破壞互通性的功能('say'、'state'、'current_sub'、'fc'、'lexical_subs'、'signatures' ,'isa ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' 和'unicode_strings'),預設啟用「use strict」和「use warnings」模式,並停用對舊間接表示法的支援調用物件(當使用空格代替“->”時)和 Perl 4 風格的多維數組和哈希(“$hash{1, 2}”)。

當累積了足夠的變更時,將產生 Perl 5 版本,而不是下一個版本的 Perl 7.0.x,這將成為一種狀態快照,但將保持與 Perl 5 完全向後相容。啟用變更和設定 如果破壞相容性,您將需要明確地將“use v7”編譯指示新增至程式碼。 那些。 帶有“use v7”編譯指示的程式碼可以被視為“現代 Perl”,其中可以進行破壞相容性的語言更改,而沒有“保守 Perl”,它將與過去的版本保持完全向後相容。

來源: opennet.ru

添加評論