內容

名稱

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 來查詢資訊。

程式設計人員也可以查詢包含的雜湊結構以尋找相關資訊。

函式 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 版本,這會傳回一個清單,描述它們之間核心模組內容的變更。此清單適合儲存在雜湊中。金鑰是函式庫名稱,值是雜湊參考。每個雜湊參考都有 leftright 中的一個或兩個項目,提供左右 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  },

這顯示我們兩個函式庫正在更新,兩個函式庫正在新增,其中一個在右側版本中具有未定義的版本。

DATA STRUCTURES

這些是可以使用的雜湊資料結構

%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

CAVEATS

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 開發版本。

HISTORY

移至 Changes 檔案。

AUTHOR

Richard Clamp <richardc@unixbeard.net>

目前由 perl 5 porters <perl5-porters@perl.org> 維護。

LICENSE

版權所有 (C) 2002-2009 Richard Clamp。保留所有權利。

此模組是免費軟體;您可以在與 Perl 相同的條款下重新分發或修改它。

SEE ALSO

corelistModule::Infoperlhttp://perlpunks.de/corelist