Search notes:

Perl module: package content

The content of an untarred Perl module package for Foo::Bar::Baz might look like so:
├── bin
│   └── exec-foo-far-baz
├── Changes
├── lib
│   └── Foo
│       └── Bar
│           └── Baz.pm
├── Makefile.PL
├── MANIFEST
├── META.yml
├── README
└── t
    └── 01-basic.t
Executable scripts under ./bin are installed under /usr/local/lib.
The *.pm module files are (or might be) installed under /user/local/share/V.ER.SION/Foo/Bar/Baz.pm
The only files that are strictly necessary are Makefile.PL, MANIFEST and lib/Foo/Bar/Baz.pm.

README

The content of README should describe the purpose of a Perl module.
CPAN shows this file's content so that potential users of the module can decide if they really need or want it.

INSTALL

INSTALL should inform a user how the module is supposed to be installed.

Makefile.PL

Makefile.PL is a Perl script that, when executed, creates a Makefile.
Makefile.PL usually uses the method WriteMakefile() found in ExtUtils::MakeMaker.

MANIFEST

MANIFEST is a file that lists the files in a distribution.
This file can be created and updated with make manifest.
Related to ExtUtils::Manifest

MANIFEST.SKIP

MANIFEST.SKIP contains a regular expression per line. Files that are matched by the regexp are not included into the distributed file.
Each file that matches one of these regular expression is not added to MANIFEST when make manifest is executed.
A regular expression might be commented with #.... Therefore, to match # these must be escaped: \#.
\.git
\.swp$
Foo-Bar-.*\.tar\.gz
blib
README.md
MANIFEST\.bak$
Makefile$
Makefile.old

META.json

The META.json file describes the distribution, its contents and the requirement for building and installing the distribution.
In older distributions, the file was called META.yml.
Apparently, the META.json file is created with make distdir.
There's also a MYMETA.json which is generated at configure time rather than at release time.

Changes

Changes logs the modifications to the module.
The format is described in Perl module CPAN::Changes::Spec.

Index