CPAN::Meta::Merge - 合并 CPAN 元数据片段
版本 2.150010
my $merger = CPAN::Meta::Merge->new(default_version => "2");
my $meta = $merger->merge($base, @additional);
这将创建一个 CPAN::Meta::Merge 对象。它接受一个必填的命名参数 version
,声明用于合并的元数据规范版本。它可以选择接受一个 extra_mappings
参数,允许为特定元素添加额外的合并函数。
extra_mappings
参数接受一个哈希引用,其结构与 CPAN::Meta::Spec 中描述的结构相同,但其值是 定义的合并策略 之一,或是一个指向合并函数的代码引用。
my $merger = CPAN::Meta::Merge->new(
default_version => '2',
extra_mappings => {
'optional_features' => \&custom_merge_function,
'x_custom' => 'set_addition',
'x_meta_meta' => {
name => 'identical',
tags => 'set_addition',
}
}
);
将所有 @fragments
合并在一起。它将接受 CPAN::Meta 对象和(可能不完整的)元数据哈希引用。
merge
使用各种策略来合并 CPAN::Meta 对象的不同元素。以下策略可与 new
的 extra_mappings 参数一起使用。
元素必须相同。
两个数组引用的并集。
[ a, b ] U [ a, c] = [ a, b, c ]
来自右侧哈希的键值对被合并到左侧哈希中。仅当键值相同的情况下才允许键冲突。此合并函数将递归进入嵌套的哈希引用,遵循相同的合并规则。
此合并策略将尝试根据元素类型选择合适的预定义策略。数组引用将尝试使用 set_addition
策略,哈希引用将尝试使用 uniq_map
策略,其他所有元素将尝试使用 identical
策略。
David Golden <[email protected]>
Ricardo Signes <[email protected]>
Adam Kennedy <[email protected]>
此软件版权所有 (c) 2010 年 David Golden、Ricardo Signes、Adam Kennedy 和贡献者。
这是自由软件;您可以在 Perl 5 编程语言系统本身的相同条款下重新分发和/或修改它。