8.1. The Module-Starter Invocation Command

After you install Module-Starter, you can type module-starter --help to get the help for it, and get a result such as the following:

Usage:
    module-starter [options]

    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 (discouraged)

        --author=name    Author's name (taken from getpwuid if not provided)
                         and Email address ( taken from $ENV{EMAIL} if Author's name is not provided )
                         Format: Author Name <author_email@domain.tld>
                         This option can be supplied multiple times for projects
                         that have multiple authors.
        --github=login   Create links to the author's GitHub issue tracker

        --ignores=type   Ignore type files to include (repeatable)
        --license=type   License under which the module will be distributed
                         (default is artistic2)
        --genlicense     Generate LICENSE file according to specified license
        --minperl=ver    Minimum Perl version required (optional;
                         default is 5.008003)

        --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

    You may also specify any Software::License subclass or CPAN Meta Spec
    license string.

    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.)

    Example:

        module-starter --module=Foo::Bar,Foo::Bat \
            --author="Andy Lester <andy@petdance.com>"

        module-starter --module=Foo::Bar,Foo::Bat \
            --author="Andy Lester <andy@petdance.com>" \
            --author="Sawyer X <sawyerx@cpan.org>"

Let's show an example invocation for our own module called MyMath::Ops which will contain some silly mathematical routines:

module-starter --distro=MyMath::Ops \
    --dir=MyMath-Ops \
    --module=MyMath::Ops \
    --module=MyMath::Ops::Add \
    --module=MyMath::Ops::Multiply \
    --module=MyMath::Ops::Subtract \
    --module=MyMath::Ops::Divide \
    --mb \
    --author="Perl Newbie <perl-newbie@perl-begin.org>" \
    --verbose

Written by Shlomi Fish