Files
scripts/Perl OTRS/Kernel/cpan-lib/CPAN/Audit/Discover/Cpanfile.pm
2024-10-14 00:08:40 +02:00

44 lines
885 B
Perl

package CPAN::Audit::Discover::Cpanfile;
use strict;
use warnings;
use Module::CPANfile;
sub new {
my $class = shift;
my $self = {};
bless $self, $class;
return $self;
}
sub discover {
my $self = shift;
my ($cpanfile_path) = @_;
my $cpanfile = Module::CPANfile->load($cpanfile_path);
my $prereqs = $cpanfile->prereqs->as_string_hash;
my @deps;
foreach my $phase ( keys %$prereqs ) {
foreach my $type ( keys %{ $prereqs->{$phase} } ) {
foreach my $module ( keys %{ $prereqs->{$phase}->{$type} } ) {
my $version = $prereqs->{$phase}->{$type}->{$module};
next if $module eq 'perl';
push @deps,
{
module => $module,
version => $version,
};
}
}
}
return @deps;
}
1;