NAME
CPANfile::Parse::PPI - Parse cpanfiles with PPI
VERSION
version 0.01
SYNOPSIS
use v5.24;
use CPANfile::Parse::PPI;
my $path = '/path/to/cpanfile';
my $cpanfile = CPANfile::Parse::PPI->new( $path );
# or
# my $cpanfile = CPANfile::Parse::PPI->new( \$content );
for my $module ( $cpanfile->modules->@* ) {
my $stage = "";
$stage = "on $module->{stage}" if $module->{stage};
say sprintf "%s is %s", $module->{name}, $module->{type};
}
METHODS
new
my $path = '/path/to/cpanfile';
my $cpanfile = CPANfile::Parse::PPI->new( $path );
# or
my $content = <<'CPANFILE';
requires "CPANfile::Parse::PPI" => 3.6;';
on build => sub {
recommends "Dist::Zilla" => 4.0;
requires "Test2" => 2.311;
}
CPANFILE
my $cpanfile = CPANfile::Parse::PPI->new( \$content );
ATTRIBUTES
modules
Returns a list of modules mentioned in the cpanfile ("perl" is skipped). Each element is a hashref with these keys:
name
version
type
stage
use CPANfile::Parse::PPI;
use Data::Printer;
my $required = 'requires "CPANfile::Parse::PPI" => 3.6;';
my $cpanfile = CPANfile::Parse::PPI->new( \$required );
my $modules = $cpanfile->modules;
p $modules;
__DATA__
[
[0] {
name "CPANfile::Parse::PPI",
stage "",
type "requires",
version 3.6
}
]
AUTHOR
Renee Baecker <reneeb@cpan.org>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2020 by Renee Baecker.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)