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.