sub _cpan2portage {
my ($self, $name, $version) = @_;
- $name = CPANPLUS::Dist::Gentoo::Maps::name_c2g($name);
- my $ver;
- $ver = CPANPLUS::Dist::Gentoo::Maps::version_c2g($version) if defined $version;
+ $name = CPANPLUS::Dist::Gentoo::Maps::name_c2g($name);
+ $version = CPANPLUS::Dist::Gentoo::Maps::version_c2g($version);
my @portdirs = ($main_portdir, @{$self->status->portdir_overlay});
for my $category (qw/virtual perl-core dev-perl perl-gcpan/, CATEGORY) {
- my $atom = ($category eq 'virtual' ? 'perl-' : '') . $name;
+ my $name = ($category eq 'virtual' ? 'perl-' : '') . $name;
for my $portdir (@portdirs) {
my @ebuilds = glob File::Spec->catfile(
$portdir,
$category,
- $atom,
- "$atom-*.ebuild",
+ $name,
+ "$name-*.ebuild",
) or next;
- my $atom = reduce { $a < $b ? $b : $a } # handles overloading
- map CPANPLUS::Dist::Gentoo::Atom->new(
- ebuild => $_,
- minimum => 1,
- ), @ebuilds;
- next if defined $ver and $atom < $ver;
+ my @atoms = map CPANPLUS::Dist::Gentoo::Atom->new(
+ defined $version ? (
+ ebuild => $_,
+ range => '>=',
+ ) : (
+ category => $category,
+ name => $name,
+ ),
+ ), @ebuilds;
+
+ my $atom = reduce { $a < $b ? $b : $a } @atoms; # handles overloading
+ next if defined $version and $atom < $version;
return $atom;
}