Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
CPAN::Meta::Converter(User Contributed Perl DocumentatCPAN::Meta::Converter(3)

       CPAN::Meta::Converter - Convert CPAN distribution metadata structures

       version 2.150010

	 my $struct = decode_json_file('META.json');

	 my $cmc = CPAN::Meta::Converter->new( $struct );

	 my $new_struct	= $cmc->convert( version => "2"	);

       This module converts CPAN Meta structures from one form to another.
       The primary use is to convert older structures to the most modern
       version of the specification, but other transformations may be
       implemented in the future as needed.  (E.g. stripping all custom	fields
       or stripping all	optional fields.)

	 my $cmc = CPAN::Meta::Converter->new( $struct );

       The constructor should be passed	a valid	metadata structure but invalid
       structures are accepted.	 If no meta-spec version is provided, version
       1.0 will	be assumed.

       Optionally, you can provide a "default_version" argument	after $struct:

	 my $cmc = CPAN::Meta::Converter->new( $struct,	default_version	=> "1.4" );

       This is only needed when	converting a metadata fragment that does not
       include a "meta-spec" field.

	 my $new_struct	= $cmc->convert( version => "2"	);

       Returns a new hash reference with the metadata converted	to a different
       form.  "convert"	will die if any	conversion/standardization still
       results in an invalid structure.

       Valid parameters	include:

       o   "version" --	Indicates the desired specification version (e.g.
	   "1.0", "1.1"	... "1.4", "2").  Defaults to the latest version of
	   the CPAN Meta Spec.

       Conversion proceeds through each	version	in turn.  For example, a
       version 1.2 structure might be converted	to 1.3 then 1.4	then finally
       to version 2. The conversion process attempts to	clean-up simple	errors
       and standardize data.  For example, if "author" is given	as a scalar,
       it will converted to an array reference containing the item.
       (Converting a structure to its own version will also clean-up and

       When data are cleaned and standardized, missing or invalid fields will
       be replaced with	sensible defaults when possible.  This may be lossy or
       imprecise.  For example,	some badly structured META.yml files on	CPAN
       have prerequisite modules listed	as both	keys and values:

	 requires => { 'Foo::Bar' => 'Bam::Baz'	}

       These would be split and	each converted to a prerequisite with a
       minimum version of zero.

       When some mandatory fields are missing or invalid, the conversion will
       attempt to provide a sensible default or	will fill them with a value of
       'unknown'.  For example a missing or unrecognized "license" field will
       result in a "license" field of 'unknown'.  Fields that may get an
       'unknown' include:

       o   abstract

       o   author

       o   license

	 my $new_struct	= $cmc->upgrade_fragment;

       Returns a new hash reference with the metadata converted	to the latest
       version of the CPAN Meta	Spec.  No validation is	done on	the result --
       you must	validate after merging fragments into a	complete metadata

       Available since version 2.141170.

       Please report any bugs or feature using the CPAN	Request	Tracker.  Bugs
       can be submitted	through	the web	interface at

       When submitting a bug or	request, please	include	a test-file or a patch
       to an existing test-file	that illustrates the bug or desired feature.

       o   David Golden	<>

       o   Ricardo Signes <>

       o   Adam	Kennedy	<>

       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.

perl v5.32.1			  2016-08-18	      CPAN::Meta::Converter(3)


Want to link to this manual page? Use this URL:

home | help