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 版本号排序,如果该模块不在核心,则返回未定义(在标量上下文中)或空列表(在列表上下文中)。
first_release_by_date( MODULE )
需要一个 MODULE 名称作为参数,返回该模块首次出现在核心中的 Perl 版本,按发布日期排序,如果该模块不在核心,则返回未定义(在标量上下文中)或空列表(在列表上下文中)。
find_modules( REGEX, [ LIST OF PERLS ] )
采用正则表达式作为参数,返回与给定正则表达式匹配的模块列表。如果只提供正则表达式,则适用于所有 Perl 版本中的所有模块。您还可以选择提供 Perl 版本列表以限制正则表达式搜索。
find_version( PERL_VERSION )
采用 Perl 版本作为参数。成功完成后,返回对哈希的引用。该哈希的每个元素都有一个键,该键是随该 Perl 版本一起提供的模块的名称(例如,“File::Path”),而值则是随该 Perl 版本一起提供的该模块的版本号(例如,“2.09”)。否则返回未定义
。
is_core( MODULE, [ MODULE_VERSION, [ PERL_VERSION ] ] )
在 2.99 及更高版本中可用。
如果 MODULE 与指定的 Perl 版本捆绑在一起,则返回 true。您可以选择指定模块的最低版本,还可以指定 Perl 版本。如果未指定 Perl 版本,is_core()
将使用正在运行的 Perl 的数字版本(即 $]
)。
如果您想指定 Perl 版本,但不关心模块版本,请为模块版本传递未定义
is_deprecated( MODULE, PERL_VERSION )
在 2.22 及更高版本中可用。
如果 MODULE 在 PERL_VERSION 中标记为已弃用,则返回 true。如果省略 PERL_VERSION,则默认为当前 Perl 版本。
deprecated_in( MODULE )
在 2.77 及更高版本中可用。
返回 MODULE 被标记为已弃用的第一个 Perl 版本。如果 MODULE 未被标记为已弃用,则返回未定义
。
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 是用于发布错误报告的电子邮件或 URL。对于 UPSTREAM => 'blead' 的模块,请使用 mailto:[email protected]。rt.cpan.org 似乎会自动为 CPAN 模块提供一个 URL;此处给出的任何值都将覆盖默认值: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 <[email protected]>
目前由 perl 5 维护者 <[email protected]> 维护。
版权所有 (C) 2002-2009 Richard Clamp。保留所有权利。
此模块是免费软件;您可以根据与 Perl 自身相同的条款重新发布和/或修改它。