内容

名称

CPAN::Meta::Prereqs - 按阶段和类型划分的发布先决条件集

版本

版本 2.150010

说明

CPAN::Meta::Prereqs 对象表示 CPAN 发布或其可选功能的先决条件。每组先决条件按阶段和类型组织,如 CPAN::Meta::Prereqs 中所述。

方法

new

my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec );

此方法返回一组新的先决条件。输入应类似于 CPAN::Meta::Spec 中描述的 prereqs 字段的内容,即类似于以下内容

my $prereq = CPAN::Meta::Prereqs->new({
  runtime => {
    requires => {
      'Some::Module' => '1.234',
      ...,
    },
    ...,
  },
  ...,
});

您还可以使用以下方法构建一组空先决条件

my $prereqs = CPAN::Meta::Prereqs->new;

这组空先决条件可用于累积新先决条件,然后最终将整个集合转储到结构或字符串中。

requirements_for

my $requirements = $prereqs->requirements_for( $phase, $type );

此方法为给定的阶段/类型组合返回一个 CPAN::Meta::Requirements 对象。如果没有为该组合注册任何先决条件,则将返回一个新的 CPAN::Meta::Requirements 对象,并且可以根据需要添加它。

如果 $phase$type 未定义或无效,则会引发异常。

phases

my @phases = $prereqs->phases;

此方法返回 prereqs 对象中当前填充的所有阶段的列表,适合于迭代。

types_in

my @runtime_types = $prereqs->types_in('runtime');

此方法返回 prereqs 对象中当前为提供的阶段填充的所有类型的列表,适合于迭代。

with_merged_prereqs

my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs );

my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs );

此方法返回一个新的 CPAN::Meta::Prereqs 对象,其中所有其他给定的先决条件都合并到当前集合中。这主要用于将发行版的核心先决条件与可选功能之一的先决条件相结合。

新的先决条件对象与原始对象没有关联,进一步更改它不会更改原始对象。

merged_requirements

my $new_reqs = $prereqs->merged_requirements( \@phases, \@types );
my $new_reqs = $prereqs->merged_requirements( \@phases );
my $new_reqs = $prereqs->merged_requirements();

此方法将跨多个阶段和类型的全部要求合并到一个新的 CPAN::Meta::Requirements 对象中。如果省略参数,则默认为阶段的“运行时”、“构建”和“测试”,类型的“需要”和“推荐”。

as_string_hash

此方法返回一个哈希引用,其中包含适合转储到 distmeta 数据结构中的结构。它仅由哈希和字符串组成;其中不会有 Prereqs、CPAN::Meta::Requirements 或 version 对象。

is_finalized

如果先决条件集已标记为“已完成”且无法更改,则此方法返回 true。

finalize

在 Prereqs 对象上调用 finalize 将关闭它以进行进一步修改。尝试进行任何实际更改先决条件的更改将导致引发异常。

clone

my $cloned_prereqs = $prereqs->clone;

此方法返回一个与原始对象完全相同的 Prereqs 对象,但可以更改它而不影响原始对象。完成不会在克隆中保留,这意味着你可以克隆一组已完成的先决条件,然后修改克隆。

BUGS

请使用 CPAN 请求跟踪器报告任何错误或功能。可以通过 http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta 上的 Web 界面提交错误。

提交错误或请求时,请附上测试文件或现有测试文件的补丁,以说明错误或所需功能。

作者

版权和许可证

该软件的版权归 David Golden、Ricardo Signes、Adam Kennedy 和贡献者所有 (c) 2010。

这是免费软件;你可以根据 Perl 5 编程语言系统本身的条款重新分发或修改它。