---
name: "Module::Starter"
section: "3pm"
platform: "linux"
package: "libmodule-starter-perl"
version: "1.770+dfsg-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Module::Starter"
---

# Module::Starter(3pm)

a simple starter kit for any module

## NAME

Module::Starter - a simple starter kit for any module

## VERSION

version 1.77

## SYNOPSIS

Nothing in here is meant for public consumption.  Use module-starter from the command line.

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

## DESCRIPTION

This is the core module for Module::Starter.  If you're not looking to extend or alter the behavior of this module, you probably want to look at module-starter instead.

Module::Starter is used to create a skeletal CPAN distribution, including basic builder scripts, tests, documentation, and module code.  This is done through just one method, `"create_distro"`.

## METHODS

### Module::Starter-\>create\_distro(%args)

`"create_distro"` is the only method you should need to use from outside this module; all the other methods are called internally by this one.

This method creates orchestrates all the work; it creates distribution and populates it with the all the requires files.

It takes a hash of params, as follows:

```
    distro       => $distroname,      # distribution name (defaults to first module)
    modules      => [ module names ], # modules to create in distro
    dir          => $dirname,         # directory in which to build distro
    builder      => 'Module::Build',  # defaults to ExtUtils::MakeMaker
                                      # or specify more than one builder in an
                                      # arrayref
    license      => $license,  # type of license; defaults to 'artistic2'
    author       => $author,   # author's full name (taken from C<getpwuid> if not provided)
    email        => $email,    # author's email address (taken from C<EMAIL> if not provided)
    ignores_type => $type,     # ignores file type ('generic', 'cvs', 'git', 'hg', 'manifest' )
    fatalize     => $fatalize, # generate code that makes warnings fatal
    verbose      => $verbose,  # bool: print progress messages; defaults to 0
    force        => $force     # bool: overwrite existing files; defaults to 0
```

The ignores\_type is a new feature that allows one to create SCM-specific ignore files. These are the mappings:

```
    ignores_type => 'generic'  # default, creates 'ignore.txt'
    ignores_type => 'cvs'      # creates .cvsignore
    ignores_type => 'git'      # creates .gitignore
    ignores_type => 'hg'       # creates .hgignore
    ignores_type => 'manifest' # creates MANIFEST.SKIP
```

It is also possible to provide an array ref with multiple types wanted:

```
    ignores_type => [ 'git', 'manifest' ]
```

## PLUGINS

Module::Starter itself doesn't actually do anything.  It must load plugins that implement `"create_distro"` and other methods.  This is done by the class's `"import"` routine, which accepts a list of plugins to be loaded, in order.

For more information, refer to Module::Starter::Plugin.

## AUTHORS

Dan Book, `"<dbook at cpan.org>"`

Sawyer X, `"<xsawyerx at cpan.org>"`

Andy Lester, `"<petdance at cpan.org>"`

Ricardo Signes, `"<rjbs at cpan.org>"`

C.J. Adams-Collier, `"<cjac at colliertech.org>"`

## SUPPORT

You can find documentation for this module with the perldoc command.

```
    perldoc Module::Starter
```

You can also look for information at:

- •

  Source code at GitHub

  \<https://github.com/xsawyerx/module-starter\>

- •

  CPAN Ratings

  \<http://cpanratings.perl.org/dist/Module-Starter\>

- •

  GitHub issue tracker

  \<https://github.com/xsawyerx/module-starter/issues\>

- •

  Search CPAN

  \<https://metacpan.org/release/Module-Starter\>

## BUGS

Please report any bugs or feature requests to the bugtracker for this project on GitHub at: \<https://github.com/xsawyerx/module-starter/issues\>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

## COPYRIGHT

Copyright 2005-2009 Andy Lester, Ricardo Signes and C.J. Adams-Collier, All Rights Reserved.

Copyright 2010 Sawyer X, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## SEE ALSO

- mbtiny

  Minimal authoring tool to create and manage distributions using Module::Build::Tiny as an installer.

- Dist::Milla

  Easy to use and powerful authoring tool using Dist::Zilla to create and manage distributions.

- Minilla

  Authoring tool similar to Dist::Milla but without using Dist::Zilla.

- Dist::Zilla

  Very complex, fully pluggable and customizable distribution builder.
