NAME
PPM::Make::Search - search for info to make ppm packages
SYNOPSIS
use PPM::Make::Search;
my $search = PPM::Make::Search->new();
my @query = qw(Net::FTP Math::Complex);
$search->search(\@query, mode => 'mod') or $search->search_error();
my $results = $search->{mod_results};
# print results
DESCRIPTION
This module either queries a remote SOAP server (if SOAP::Lite is available), uses CPAN.pm, if configured, or uses LWP::Simple for a connection to http://cpan.uwinnipeg.ca/ to provide information on either modules or distributions needed to make a ppm package. The basic object is created as
my $search = PPM::Make::Search->new();
with searches being performed as
my @query = qw(Net::FTP Math::Complex);
$search->search(\@query, mode => 'mod') or $search->search_error();
The first argument to the search
method is either a string containing the name of the module or distribution, or else an array reference containing module or distribution names. The results are contained in $search->{mod_results}
, for module queries, or $search->{dist_results}
, for distribution queries. Supported values of mode
are
mode => 'mod'
-
This is used to search for modules. The query term must match exactly, in a case sensitive manner. The results are returned as a hash reference, the keys being the module name, and the associated values containing the information in the form:
my @query = qw(Net::FTP Math::Complex); $search->search(\@query, mode => 'mod') or $search->search_error(); my $results = $search->{mod_results}; foreach my $m(keys %$results) { my $info = $results->{$m}; print <<"END" For module $m: Module: $info->{mod_name} Version: $info->{mod_vers} Description: $info->{mod_abs} Author: $info->{author} CPANID: $info->{cpanid} CPAN file: $info->{dist_file} Distribution: $info->{dist_name} END }
mode => 'dist'
-
This is used to search for distributions. The query term must match exactly, in a case sensitive manner. The results are returned as a hash reference, the keys being the distribution name, and the associated values containing the information in the form:
my @d = qw(Math-Complex libnet); $search->search(\@d, mode => 'dist') or $search->search_error(); my $results = $search->{dist_results}; foreach my $d(keys %$results) { my $info = $results->{$d}; print <<"END"; For distribution $d: Distribution: $info->{dist_name} Version: $info->{dist_vers} Description: $info->{dist_abs} Author: $info->{author} CPAN file: $info->{dist_file} END my @mods = @{$info->{mods}}; foreach (@mods) { print "Contains module $_->{mod_name}: Version: $_->{mod_vers}\n"; } }
COPYRIGHT
This program is copyright, 2008 by Randy Kobes <r.kobes@uwinnipeg.ca>. It is distributed under the same terms as Perl itself.
SEE ALSO
PPM.