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
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.
MANIFEST
MANIFEST is a file that lists the files in a distribution.
This file can be created and updated with
make 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.