+sub _cpan2portage {
+ my ($self, $name, $version) = @_;
+
+ $name = $gentooism{$name} || $name;
+ my $ver;
+ $ver = eval { version->new($version) } if defined $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;
+
+ for my $portdir (@portdirs) {
+ my @ebuilds = glob catfile($portdir, $category, $atom,"$atom-*.ebuild");
+ next unless @ebuilds;
+
+ if (defined $version) {
+ for (@ebuilds) {
+ next unless /\Q$atom\E-v?([\d._]+).*?\.ebuild$/;
+ my $eb_ver = eval { version->new($1) };
+ next unless defined $eb_ver and $eb_ver >= $ver;
+ return ">=$category/$atom-$version";
+ }
+ } else {
+ return "$category/$atom";
+ }
+
+ }
+
+ }
+
+ error "Couldn't find an appropriate ebuild for $name in the portage tree -- skipping";
+ return '';
+}
+