Module::CoreList - 隨附 perl 版本的模組
use Module::CoreList;
print $Module::CoreList::version{5.00503}{CPAN}; # prints 1.48
print Module::CoreList->first_release('File::Spec');
# prints 5.00405
print Module::CoreList->first_release_by_date('File::Spec');
# prints 5.005
print Module::CoreList->first_release('File::Spec', 0.82);
# prints 5.006001
if (Module::CoreList::is_core('File::Spec')) {
print "File::Spec is a core module\n";
}
print join ', ', Module::CoreList->find_modules(qr/Data/);
# prints 'Data::Dumper'
print join ', ',
Module::CoreList->find_modules(qr/test::h.*::.*s/i, 5.008008);
# prints 'Test::Harness::Assert, Test::Harness::Straps'
print join ", ", @{ $Module::CoreList::families{5.005} };
# prints "5.005, 5.00503, 5.00504"
Module::CoreList 提供有關隨附每個 perl 版本的核心和雙重生命週期模組的資訊。
它提供多種機制來查詢此資訊。
此模組提供一個名為 corelist 的實用程式,這是一種從命令列查詢的便利方式。
程式設計人員可以使用函式程式設計 API 來查詢資訊。
程式設計人員也可以查詢包含的雜湊結構以尋找相關資訊。
以下是可用的函式,它們可以作為函式或類別方法呼叫
Module::CoreList::first_release('File::Spec'); # as a function
Module::CoreList->first_release('File::Spec'); # class method
first_release( MODULE )
2.11 版以來的行為
需要一個 MODULE 名稱作為引數,傳回該模組在核心首次出現的 perl 版本,按 perl 版本號排序,或 undef(在標量內容中)或空清單(在清單內容中),如果該模組不在核心。
first_release_by_date( MODULE )
需要一個 MODULE 名稱作為引數,回傳該模組首次出現在核心中的 perl 版本,依發布日期排序,或 undef(在純量內容中)或空清單(在清單內容中),如果該模組不在核心。
find_modules( REGEX, [ LIST OF PERLS ] )
將正規表示式作為引數,回傳與給定正規表示式相符的模組清單。如果只提供正規表示式,則套用至所有 perl 版本中的所有模組。您也可以選擇提供 perl 版本清單,以限制正規表示式搜尋。
find_version( PERL_VERSION )
將 perl 版本作為引數。成功完成後,回傳對雜湊的參考。該雜湊的每個元素都有個金鑰,也就是與該 perl 版本一起發布的模組名稱(例如「File::Path」),以及該模組與該 perl 版本一起發布的版本號(例如「2.09」)。否則回傳 undef
。
is_core( MODULE, [ MODULE_VERSION, [ PERL_VERSION ] ] )
適用於 2.99 以上版本。
如果 MODULE 與指定的 Perl 版本捆綁,則回傳 true。您也可以選擇指定模組的最低版本,以及 Perl 的版本。如果未指定 Perl 版本,is_core()
將使用正在執行的 Perl 的數字版本(即 $]
)。
如果您想指定 Perl 版本,但不在乎模組版本,請傳遞 undef
給模組版本
is_deprecated( MODULE, PERL_VERSION )
適用於 2.22 以上版本。
如果 MODULE 在 PERL_VERSION 中標示為已棄用,則回傳 true。如果省略 PERL_VERSION,則預設為 Perl 的目前版本。
deprecated_in( MODULE )
適用於 2.77 以上版本。
回傳 MODULE 標示為已棄用的第一個 perl 版本。如果 MODULE 尚未標示為已棄用,則回傳 undef
。
removed_from( MODULE )
版本 2.32 及以上可用
將模組名稱作為參數,傳回該模組從核心移除的第一個 Perl 版本。如果給定的模組從未在核心或仍留在核心,則傳回未定義。
removed_from_by_date( MODULE )
版本 2.32 及以上可用
將模組名稱作為參數,傳回該模組從核心移除的第一個 Perl 版本(依發佈日期)。如果給定的模組從未在核心或仍留在核心,則傳回未定義。
changes_between( PERL_VERSION, PERL_VERSION )
版本 2.66 及以上可用。
給定兩個 Perl 版本,這會傳回一個清單,描述它們之間核心模組內容的變更。此清單適合儲存在雜湊中。金鑰是函式庫名稱,值是雜湊參考。每個雜湊參考都有 left
和 right
中的一個或兩個項目,提供左右 Perl 發行版中函式庫的版本。
例如,它可能會傳回這些資料(以及其他資料),以區分 5.008000 和 5.008001
'Pod::ParseLink' => { left => '1.05', right => '1.06' },
'Pod::ParseUtils' => { left => '0.22', right => '0.3' },
'Pod::Perldoc' => { right => '3.10' },
'Pod::Perldoc::BaseTo' => { right => undef },
這顯示我們兩個函式庫正在更新,兩個函式庫正在新增,其中一個在右側版本中具有未定義的版本。
這些是可以使用的雜湊資料結構
%Module::CoreList::version
雜湊的雜湊,以 $] 中指示的 Perl 版本為金鑰。第二層雜湊是模組 => 版本配對。
請注意,模組的版本可能未指定,因此值為 undef
,因此如果你要測試的是這個,請使用 exists $version{$foo}{$bar}
。
從 2.10 開始,特殊模組名稱 Unicode
參考與 Perl 捆綁的 Unicode 字元資料庫版本。
%Module::CoreList::delta
版本 3.00 及以上可用。
它是雜湊的雜湊,以 Perl 版本為金鑰。每個金鑰雜湊將有下列金鑰
delta_from - a previous perl version that the changes are based on
changed - a hash of module/versions that have changed
removed - a hash of modules that have been removed
%Module::CoreList::released
以 Perl 版本為金鑰,這包含從 perlhist 擷取的發佈日期的 ISO 格式版本。
%Module::CoreList::families
新增,在 1.96 中,一個雜湊,按其主要版本將已知的 Perl 發行版分群。
%Module::CoreList::deprecated
以 Perl 版本和模組名稱為鍵的雜湊值。如果定義了模組,則表示該模組在該 Perl 版本中已過時,並預計在將來的某個時間點從核心移除。
%Module::CoreList::upstream
包含有關每個核心模組應將修補程式導向何處的資訊的雜湊值。
UPSTREAM 指示修補程式應導向何處。undef
表示尚未針對手邊的模組討論此問題。blead
表示應將 blead 來源中模組的副本視為正規,cpan
表示應首先修補 CPAN 上的模組。first-come
表示如果 blead 與 CPAN 上的最新版本同步,則可以自由修補 blead。
%Module::CoreList::bug_tracker
包含有關每個核心模組的適當錯誤追蹤器的資訊的雜湊值。
BUGS 是用於張貼錯誤報告的電子郵件或網址。對於 UPSTREAM => 'blead' 的模組,請使用 mailto:perl5-porters@perl.org。rt.cpan.org 似乎會自動提供 CPAN 模組的網址;在此處提供的任何值都會覆寫預設值:http://rt.cpan.org/Public/Dist/Display.html?Name=$ModuleName
Module::CoreList 目前涵蓋 Perl 的 5.000、5.001、5.002、5.003_07、5.004、5.004_05、5.005、5.005_03、5.005_04 和 5.7.3 版本。
涵蓋自 5.6.0 以來的所有 Perl 穩定版本。
涵蓋自 5.9.0 以來的所有 Perl 開發版本。
移至 Changes 檔案。
Richard Clamp <richardc@unixbeard.net>
目前由 perl 5 porters <perl5-porters@perl.org> 維護。
版權所有 (C) 2002-2009 Richard Clamp。保留所有權利。
此模組是免費軟體;您可以在與 Perl 相同的條款下重新分發或修改它。