The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;
use base 'LEOCHARRE::CLI';
use WWW::CPAN;
# use Smart::Comments '###';
my $o = gopts('V');

@ARGV or die('missing arg');


my $cpan = WWW::CPAN->new;

my @v = map { get_cpan_version($_) } @ARGV;

print join("\n",@v);

sub usage {

return qq{$0 - get module versions from cpan

OPTION FLAGS

   -V verbose, print meta info to stdout

SEE ALSO

LEOCHARRE::Dev

   };
}


sub get_cpan_version {
   my $dist = shift;
   $dist or die('missing arg');
   my $distname = _arg2distname($dist) or die;

   my $meta = $cpan->fetch_distmeta({ dist => $distname})
      or print STDERR "cant fetch dist meta for $distname\n" 
      and return '';
   if( $o->{V} ){
      ### $meta
   }

   my $version = $meta->{version} 
      or print STDERR "cant get version number for $distname\n"
      and return '';

   return $version;
}

sub _arg2distname {
   my $arg = shift;

   my $namechars = qr/[a-zA-Z0-9]/;
   my $distchars = qr/[a-zA-Z0-9\:\-\.]/;

   $arg=~/^$distchars+$/ or die("argument $arg doesn't look like a distro name");
   $arg=~s/\:\:/\-/g;
   return $arg;


}