| CPAN::Meta::Merge(3pm) | Perl Programmers Reference Guide | CPAN::Meta::Merge(3pm) |
CPAN::Meta::Merge - Merging CPAN Meta fragments
version 2.150010
my $merger = CPAN::Meta::Merge->new(default_version => "2"); my $meta = $merger->merge($base, @additional);
This creates a CPAN::Meta::Merge object. It takes one mandatory named argument, "version", declaring the version of the meta-spec that must be used for the merge. It can optionally take an "extra_mappings" argument that allows one to add additional merging functions for specific elements.
The "extra_mappings" arguments takes a hash ref with the same type of structure as described in CPAN::Meta::Spec, except with its values as one of the defined merge strategies or a code ref to a merging function.
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',
}
}
);
Merge all @fragments together. It will accept both CPAN::Meta objects and (possibly incomplete) hashrefs of metadata.
"merge" uses various strategies to combine different elements of the CPAN::Meta objects. The following strategies can be used with the extra_mappings argument of "new":
[ a, b ] U [ a, c] = [ a, b, c ]
This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| 2022-02-19 | perl v5.34.1 |