CPAN::DistnameInfo - Extract distribution name and version from a distribution
filename
my $pathname = "authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.02.tar.gz";
my $d = CPAN::DistnameInfo->new($pathname);
my $dist = $d->dist; # "CPAN-DistnameInfo"
my $version = $d->version; # "0.02"
my $maturity = $d->maturity; # "released"
my $filename = $d->filename; # "CPAN-DistnameInfo-0.02.tar.gz"
my $cpanid = $d->cpanid; # "GBARR"
my $distvname = $d->distvname; # "CPAN-DistnameInfo-0.02"
my $extension = $d->extension; # "tar.gz"
my $pathname = $d->pathname; # "authors/id/G/GB/GBARR/..."
my %prop = $d->properties;
Many online services that are centered around CPAN attempt to associate multiple
uploads by extracting a distribution name from the filename of the upload. For
most distributions this is easy as they have used ExtUtils::MakeMaker or
Module::Build to create the distribution, which results in a uniform name. But
sadly not all uploads are created in this way.
"CPAN::DistnameInfo" uses
heuristics that have been learnt by <http://search.cpan.org/> to
extract the distribution name and version from filenames and also report if
the version is to be treated as a developer release
The constructor takes a single pathname, returning an object with
the following methods
- cpanid
- If the path given looked like a CPAN authors directory path, then this
will be the the CPAN id of the author.
- dist
- The name of the distribution
- distvname
- The file name with any suffix and leading directory names removed
- filename
- If the path given looked like a CPAN authors directory path, then this
will be the path to the file relative to the detected CPAN author
directory. Otherwise it is the path that was passed in.
- maturity
- The maturity of the distribution. This will be either
"released" or
"developer"
- extension
- The extension of the distribution, often used to denote the archive type
(e.g. 'tar.gz')
- pathname
- The pathname that was passed to the constructor when creating the
object.
- properties
- This will return a list of key-value pairs, suitable for assigning to a
hash, for the known properties.
- version
- The extracted version
Graham Barr <gbarr@pobox.com>
Copyright (c) 2003 Graham Barr. All rights reserved. This program is free
software; you can redistribute it and/or modify it under the same terms as
Perl itself.