目录

名称

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 版本号排序,如果该模块不在核心,则返回未定义(在标量上下文中)或空列表(在列表上下文中)。

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 版本,此函数返回描述这两个版本之间核心模块内容变化的成对列表。该列表适合存储在哈希中。键是库名称,值是哈希引用。每个哈希引用都有一个 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  },

这向我们展示了两个库正在更新,两个库正在添加,其中一个在右侧版本中具有未定义版本。

数据结构

以下是可用的哈希数据结构

%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

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 <[email protected]>

目前由 perl 5 维护者 <[email protected]> 维护。

LICENSE

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

此模块是免费软件;您可以根据与 Perl 自身相同的条款重新发布和/或修改它。

另请参阅

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