Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CPAN::Meta::Prereqs (3)

Name

CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type

Synopsis

Please see following description for synopsis

Description

Perl Programmers Reference Guide                        CPAN::Meta::Prereqs(3)



NAME
       CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and
       type

VERSION
       version 2.150010

DESCRIPTION
       A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN
       distribution or one of its optional features.  Each set of prereqs is
       organized by phase and type, as described in CPAN::Meta::Prereqs.

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

       This method returns a new set of Prereqs.  The input should look like
       the contents of the "prereqs" field described in CPAN::Meta::Spec,
       meaning something more or less like this:

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

       You can also construct an empty set of prereqs with:

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

       This empty set of prereqs is useful for accumulating new prereqs before
       finally dumping the whole set into a structure or string.

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

       This method returns a CPAN::Meta::Requirements object for the given
       phase/type combination.  If no prerequisites are registered for that
       combination, a new CPAN::Meta::Requirements object will be returned,
       and it may be added to as needed.

       If $phase or $type are undefined or otherwise invalid, an exception
       will be raised.

   phases
         my @phases = $prereqs->phases;

       This method returns the list of all phases currently populated in the
       prereqs object, suitable for iterating.

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

       This method returns the list of all types currently populated in the
       prereqs object for the provided phase, suitable for iterating.

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

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

       This method returns a new CPAN::Meta::Prereqs objects in which all the
       other prerequisites given are merged into the current set.  This is
       primarily provided for combining a distribution's core prereqs with the
       prereqs of one of its optional features.

       The new prereqs object has no ties to the originals, and altering it
       further will not alter them.

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

       This method joins together all requirements across a number of phases
       and types into a new CPAN::Meta::Requirements object.  If arguments are
       omitted, it defaults to "runtime", "build" and "test" for phases and
       "requires" and "recommends" for types.

   as_string_hash
       This method returns a hashref containing structures suitable for
       dumping into a distmeta data structure.  It is made up of hashes and
       strings, only; there will be no Prereqs, CPAN::Meta::Requirements, or
       "version" objects inside it.

   is_finalized
       This method returns true if the set of prereqs has been marked
       "finalized," and cannot be altered.

   finalize
       Calling "finalize" on a Prereqs object will close it for further
       modification.  Attempting to make any changes that would actually alter
       the prereqs will result in an exception being thrown.

   clone
         my $cloned_prereqs = $prereqs->clone;

       This method returns a Prereqs object that is identical to the original
       object, but can be altered without affecting the original object.
       Finalization does not survive cloning, meaning that you may clone a
       finalized set of prereqs and then modify the clone.

BUGS
       Please report any bugs or feature using the CPAN Request Tracker.  Bugs
       can be submitted through the web interface at
       <http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta>

       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.

AUTHORS
       o   David Golden <dagolden@cpan.org>

       o   Ricardo Signes <rjbs@cpan.org>

       o   Adam Kennedy <adamk@cpan.org>

COPYRIGHT AND LICENSE
       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.



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+-----------------------+
       |ATTRIBUTE TYPE |   ATTRIBUTE VALUE     |
       +---------------+-----------------------+
       |Availability   | runtime/perl-532      |
       +---------------+-----------------------+
       |Stability      | Pass-through volatile |
       +---------------+-----------------------+

NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       http://www.cpan.org/src/5.0/perl-5.32.0.tar.gz.

       Further information about this software can be found on the open source
       community website at https://www.perl.org/.



perl v5.32.0                      2020-06-14            CPAN::Meta::Prereqs(3)