This is one of the possible layouts for a Perl project built using MakeMaker.
This is the heart of the project. This Perl script will generate the GNU Makefile for the entire project.
This is a list of files that are part of the project. This file must be kept updated with every single file (one per line) you wish to include in the project.
In can be generated automatically by typing:
$ make manifest
all files in the current directory and subdirectories will be added to
the MANIFEST. If you want to exclude something, you can create the
MANIFEST.SKIP file and add the unwanted files there.
This file contains a brief description of the project; it's goals and the features provided. It should outline the requirements (additional modules for example) and report any meaningfull information your users must or might like to know before they install your software.
General installation instructions. The file should include a step by step guide to build and install the project from source, and should also report some instructions about the installation of the available binaries (if any).
This is the license which the project is under.
This file logs of what have been added or changed in any file of the project.
Some kind of release notes. This file should resume the changes between
releases, with less details than the Changes file.
This is a list of planned features that will be, sooner or later, included in the project.
The list of bugs. In the best case this file will be empty.
The list, name and email, of any person who have made contributions to the projects. These includes code, of course, but also binaries, documentation and so on.
Anyone who supported to projects, with suggestions and bug reports and any other action that helped the project grow or spread.
These directories will contain executables and packages/libraries respectively.
The files in this directory are test scripts (.t), and are executed
during the test phase of the building process.
Unlike other kind of projects, a Perl projects don't strictly need to have any documentation file (like a man page for example); you can embed all you need directly in the code using the POD format.