GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Module::CPANfile(3) User Contributed Perl Documentation Module::CPANfile(3)

Module::CPANfile - Parse cpanfile

  use Module::CPANfile;

  my $file = Module::CPANfile->load("cpanfile");
  my $prereqs = $file->prereqs; # CPAN::Meta::Prereqs object

  my @features = $file->features; # CPAN::Meta::Feature objects
  my $merged_prereqs = $file->prereqs_with(@identifiers); # CPAN::Meta::Prereqs

  $file->merge_meta('MYMETA.json');

Module::CPANfile is a tool to handle cpanfile format to load application specific dependencies, not just for CPAN distributions.

load
  $file = Module::CPANfile->load;
  $file = Module::CPANfile->load('cpanfile');
    

Load and parse a cpanfile. By default it tries to load "cpanfile" in the current directory, unless you pass the path to its argument.

from_prereqs
  $file = Module::CPANfile->from_prereqs({
    runtime => { requires => { DBI => '1.000' } },
  });
    

Creates a new Module::CPANfile object from prereqs hash you can get via CPAN::Meta's "prereqs", or CPAN::Meta::Prereqs' "as_string_hash".

  # read MYMETA, then feed the prereqs to create Module::CPANfile
  my $meta = CPAN::Meta->load_file('MYMETA.json');
  my $file = Module::CPANfile->from_prereqs($meta->prereqs);

  # load cpanfile, then recreate it with round-trip
  my $file = Module::CPANfile->load('cpanfile');
  $file = Module::CPANfile->from_prereqs($file->prereq_specs);
                                    # or $file->prereqs->as_string_hash
    
prereqs
Returns CPAN::Meta::Prereqs object out of the parsed cpanfile.
prereq_specs
Returns a hash reference that should be passed to "CPAN::Meta::Prereqs->new".
features
Returns a list of features available in the cpanfile as CPAN::Meta::Feature.
prereqs_with(@identifiers), effective_prereqs(\@identifiers)
Returns CPAN::Meta::Prereqs object, with merged prereqs for features identified with the @identifiers.
to_string($include_empty)
  $file->to_string;
  $file->to_string(1);
    

Returns a canonical string (code) representation for cpanfile. Useful if you want to convert CPAN::Meta::Prereqs to a new cpanfile.

  # read MYMETA's prereqs and print cpanfile representation of it
  my $meta = CPAN::Meta->load_file('MYMETA.json');
  my $file = Module::CPANfile->from_prereqs($meta->prereqs);
  print $file->to_string;
    

By default, it omits the phase where there're no modules registered. If you pass the argument of a true value, it will print them as well.

save
  $file->save('cpanfile');
    

Saves the currently loaded prereqs as a new "cpanfile" by calling "to_string". Beware this method will overwrite the existing cpanfile without any warning or backup. Taking a backup or giving warnings to users is a caller's responsibility.

  # Read MYMETA.json and creates a new cpanfile
  my $meta = CPAN::Meta->load_file('MYMETA.json');
  my $file = Module::CPANfile->from_prereqs($meta->prereqs);
  $file->save('cpanfile');
    
merge_meta
  $file->merge_meta('META.yml');
  $file->merge_meta('MYMETA.json', '2.0');
    

Merge the effective prereqs with Meta specification loaded from the given META file, using CPAN::Meta. You can specify the META spec version in the second argument, which defaults to 1.4 in case the given file is YAML, and 2 if it is JSON.

options_for_module
  my $options = $file->options_for_module($module);
    

Returns the extra options specified for a given module as a hash reference. Returns "undef" when the given module is not specified in the "cpanfile".

For example,

  # cpanfile
  requires 'Plack', '1.000',
    dist => "MIYAGAWA/Plack-1.000.tar.gz";

  # ...
  my $file = Module::CPANfile->load;
  my $options = $file->options_for_module('Plack');
  # => { dist => "MIYAGAWA/Plack-1.000.tar.gz" }
    

Tatsuhiko Miyagawa

cpanfile, CPAN::Meta, CPAN::Meta::Spec
2018-04-26 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.