These notes are for creating a Perl CPAN module using Module::Build with some help from Module::Starter. I chose to use Module::Build because it is newer and was created to resolve various problems with the older ExtUtils::MakeMaker. The maintainer of ExtUtils::MakeMaker recommends using Module::Build.
module-starter --mb --module=My::Module --author="Author Name" --email@example.com
--mb- The build system to use. This is shorthand for
--module=My::Module- The name of the module that you want to build. A folder named
My-Modulewill be created based on this.
--author="Author Name"- The name of the module author. The author, as well as the copyright and licensing, will be under this name in the README file and POD documentation.
--firstname.lastname@example.org- The author's email address
The following files are created:
- Build.PL - Used to generate the
Buildscript for this module. Under
build_requires, you should add any other modules which this depends on. (This is a hash mapping from the module name to the required module version or 0 if no version is specified.)
- Changes - A log of changes to this module. This is for the module maintainer to update with each version. You should modify the log entry for the initial version.
- ignore.txt - An ignore file for your SCM.
- lib/My/Module.pm - The module code, in the lib directory, with the folder structure following the module namespace structure. This should include the module version number and POD documentation (preferably after
- MANIFEST - Lists the files contained in this distribution.
- README - Provides an introduction to the module, as well as information about installation, documentation and licensing.
- t/*.t - Various test files in which you will need to add your own unit tests.