CPAN::DistnameInfo(3) User Contributed Perl Documentation CPAN::DistnameInfo(3)

# [NAME](#NAME)

CPAN::DistnameInfo - Extract distribution name and version from a distribution filename

# [SYNOPSIS](#SYNOPSIS)

```
  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;
```

# [DESCRIPTION](#DESCRIPTION)

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 &lt;http://search.cpan.org/&gt; 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](#cpanid)

If the path given looked like a CPAN authors directory path, then this will be the the CPAN id of the author.

[dist](#dist)

The name of the distribution

[distvname](#distvname)

The file name with any suffix and leading directory names removed

[filename](#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](#maturity)

The maturity of the distribution. This will be either "released" or "developer"

[extension](#extension)

The extension of the distribution, often used to denote the archive type (e.g. 'tar.gz')

[pathname](#pathname)

The pathname that was passed to the constructor when creating the object.

[properties](#properties)

This will return a list of key-value pairs, suitable for assigning to a hash, for the known properties.

[version](#version)

The extracted version

# [AUTHOR](#AUTHOR)

Graham Barr &lt;gbarr@pobox.com&gt;

# [COPYRIGHT](#COPYRIGHT)

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.

2026-10-24 perl v5.44.0

---

Document: CPAN::DistnameInfo(3pm) from perl-cpan-distnameinfo 0.12-r3 (Chainguard OS)
Source: https://github.com/Perl-Toolchain-Gang/CPAN-DistnameInfo.git
