> searchcpan Class::InsideOut
####
> searchcpan mod://Storable
> searchcpan dist://Test-Simple
> searchcpan author://dagolden
####
# searchcpan.pl
use strict;
use warnings;
my %modes = (
"mod://" => "module",
"dist://" => "dist",
"author://" => "author",
);
my $url = "http://search.cpan.org/search?query=QUERY;mode=MODE";
my $target = shift;
if ( ! $target ) {
$url =~ s{/search\?.+}{};
}
else {
my ($mode) = grep { $target =~ qr/\A$_/ } keys %modes;
if ( defined $mode ) {
$target =~ s{\A$mode}{};
$url =~ s{MODE}{$modes{$mode}};
$url =~ s{QUERY}{$target};
}
else {
$url =~ s{QUERY}{$target};
$url =~ s{MODE}{all};
}
}
system('C:\windows\system32\cmd.exe', "/C start $url" );