schwern edited this page Jan 6, 2013 · 1 revision
Clone this wiki locally


A distribution is a collection of releases. For example, Test-Simple is a distribution. Test-Simple-0.98.tar.gz is a release of the Test-Simple distribution. Test::More is a package in that distribution.

Perl and CPAN have no formal concept of what a "distribution" is. It is pieced together from the filename of the release and some heuristics.

A distribution has few attributes of its own, name, releases and some metadata like a home page and issue tracker. Most of what is considered attributes of a distribution, such as the author, are actually attributes of its releases.

People often say "module" when they mean "distribution".


An archive file (ie. tar.gz or zip) uploaded to CPAN by an author. A release is part of a distribution and has a version number.

A release has several attributes: date, version, distribution, version, author, filename.

Example. Test-Simple-0.98.tar.gz is a release of the Test-Simple distribution.


A Perl package or class name. Typically one-to-one associated with a .pm file.

People often identify distributions by a single package within it. It is difficult to reliably determine the packages inside a distribution.

For example, Test::More is a package in the Test-Simple distribution.


An ambiguous term we avoid because it is used by different people to mean different things. Use "package", "release" or "distribution" instead.