module-starter(1) creates a skeleton module distribution


module-starter [options]


--module=module Module name (required, repeatable)
--distro=name Distribution name (optional)
--dir=dirname Directory name to create new module in (optional)
--builder=module Build with 'ExtUtils::MakeMaker' or 'Module::Build'
--eumm Same as --builder=ExtUtils::MakeMaker
--mb Same as --builder=Module::Build
--mi Same as --builder=Module::Install
--author=name Author's name (taken from getpwuid if not provided)
--email=email Author's email (taken from EMAIL if not provided)
--ignores=type Ignore type files to include (repeatable)
--license=type License under which the module will be distributed
(default is artistic2)
--minperl=ver Minimum Perl version required (optional;
default is 5.006)
--fatalize Generate code that causes all warnings to be fatal with:
use warnings FATAL => 'all'
--verbose Print progress messages while working
--force Delete pre-existing files if needed
--help Show this message

Available Licenses:

    perl, artistic, artistic2, mit, mozilla, mozilla2, bsd, freebsd, cc0,
    gpl, lgpl, gpl3, lgpl3, agpl3, apache, qpl

Available Ignore Types:

    cvs, git, hg, manifest, generic
    (NOTE: If manifest is included, the MANIFEST file will be skipped
    and only a MANIFEST.SKIP file will be included.)


    module-starter --module=Foo::Bar,Foo::Bat \
        --author="Andy Lester" [email protected]


"module-starter" is a command-line interface to Module::Starter, which it uses to perform all the work of creating distributions. An alternate backend for "module-starter" can be specified with the "--class" option. Plugins to the standard Module::Starter module can be specified with one or more "--plugin" options.

If no directory name is supplied, the distribution name will be used for the directory. If no distribution name is supplied, the first listed module name will be used as the distribution name.

Multiple --builder options may be supplied to produce the files for multiple builders.


module-starter will look for a configuration file before reading its command line parameters. The default location is "$HOME/.module-starter/config" but if the MODULE_STARTER_DIR environment variable is set, module-starter will look for "config" in that directory.

The configuration file is just a list of names and values, separated by colons. Values that take lists are just space separated. Note that the "--ignores" command line parameter corresponds to the "ignores_type" configuration file entry. A sample configuration file might read:

 author: Ricardo SIGNES
 email:  [email protected]
 ignores_type: git
 plugins: Module::Starter::Simple Module::Starter::Plugin::XYZ
 xyz_option: red green blue

This format may become more elaborate in the future, but a file of this type should remain valid.