deprecate - Perl pragma 針對核心模組包含的棄用
use deprecate; # warn about future absence if loaded from core
此 pragma 簡化了雙重生命週期模組的維護,這些模組在未來的 Perl 版本中將不再包含在 Perl 核心,但目前仍包含在其中。
此 pragma 的目的是透過發出警告來提醒使用者此類模組的狀態,鼓勵他們從 CPAN 安裝模組,如此一來,未來升級到省略此模組的 perl 時,他們的程式碼就不會中斷。
如果模組從核心程式庫目錄載入,則只會發出此警告,這允許在模組的 CPAN 版本中包含 use deprecate
行。由於當模組從非核心程式庫目錄執行時,實用指令會保持靜默,因此不需要將實用指令呼叫修補到模組的核心或 CPAN 版本中,也不需要將其從中移除。確切的相同程式碼可以運送給任一目的。
請注意,當模組從 CPAN 安裝到核心程式庫目錄,而不是網站程式庫目錄時,使用者不會因為安裝了它而獲得任何保護。
同時,此實用指令無法偵測到此類模組何時從 CPAN 安裝到核心程式庫,因此它會不斷且徒勞地勸告使用者升級。
因此,可以從 CPAN 安裝到核心程式庫的模組必須確保在這樣做時不呼叫此實用指令。通常這表示安裝程式的確切邏輯必須反映在模組內部。例如
# Makefile.PL
WriteMakefile(
# ...
INSTALLDIRS => ( "$]" >= 5.011 ? 'site' : 'perl' ),
);
# lib/Foo/Bar.pm
use if "$]" >= 5.011, 'deprecate';
(以上範例顯示此情況最重要的案例:當目標是早於 Perl 5.12(其中核心程式庫目錄優先於網站程式庫目錄)的 Perl,且正在安裝的模組包含在該 Perl 版本的核心程式中。在這種情況下,只能透過安裝到核心程式庫才能從 CPAN 升級模組。)
預設為無。唯一的方法是 import
,由 use deprecate;
呼叫。
use deprecate;
的第一個範例是 Switch。
Nicholas Clark 的原始版本
版權所有 (C) 2009、2011
此程式庫是免費軟體;您可以根據 Perl 本身條款(Perl 版本 5.10.0 或您可能擁有的任何後續 Perl 5 版本)重新散布或修改它。