CPAN::Meta::Merge - 合併 CPAN Meta 片段
版本 2.150010
my $merger = CPAN::Meta::Merge->new(default_version => "2");
my $meta = $merger->merge($base, @additional);
這會建立一個 CPAN::Meta::Merge 物件。它會接受一個強制性的命名參數,version
,宣告合併時必須使用的 meta-spec 版本。它可以選擇性地接受一個 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 <dagolden@cpan.org>
Ricardo Signes <rjbs@cpan.org>
Adam Kennedy <adamk@cpan.org>
此軟體的版權為 (c) 2010 David Golden、Ricardo Signes、Adam Kennedy 和貢獻者所有。
這是免費軟體;您可以在與 Perl 5 程式語言系統相同的條款下重新散布或修改它。