Module::Starter(3pm)
π NAME π
Module::Starter β a simple starter kit for any module. Yes bestie, that's literally it. This page is Module::Starter(3pm), straight out of the User Contributed Perl Documentation section, and we're gonna walk through every single bit of it together. π«Ά
β¨ VERSION β¨
version 1.80 β that's the one, no cap. π
πΈ SYNOPSIS πΈ
Okay so lowkey important: nothing in here is meant for public consumption. Like, this is not the vibe you're supposed to be calling directly. Use module-starter from the command line, bestie.
module-starter --module=Foo::Bar,Foo::Bat \
--author="Andy Lester <andy@petdance.com>"
That's the whole synopsis. Chef's kiss. π
π¦ DESCRIPTION π¦
This is the core module for Module::Starter. So if you're not trying to extend it or mess with how it behaves, you probably want to go look at module-starter instead. Just saying. π
Module::Starter is the thing that creates a skeletal CPAN distribution β like, basic builder scripts, tests, documentation, and module code, all the scaffolding. And it does ALL of that through literally just one method: create_distro. One method. Main character energy fr.
π METHODS π
π« Module::Starter->create_distro(%args) π«
create_distro is the only method you should need to use from outside this module. Everything else is getting called internally by this one. She's the boss. π
This method creates β orchestrates β all the work: it makes the distribution and populates it with all the required 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 => [ authors ], # author(s) name and email address
# (if not provided, name and email are taken from getpwuid and
# EMAIL respectively)
# format: Author Name <author-email@domain.tld>
github => $username, # author's GitHub user name (for creating links to issue tracker)
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 lets you create SCM-specific ignore files. Here are the mappings, keep them safe:
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
And it is also possible to provide an array ref with multiple types wanted, because why pick one when you can have both:
ignores_type => [ 'git', 'manifest' ]
Periodt. π
π§ PLUGINS π§
Plot twist: Module::Starter itself doesn't actually do anything. π It must load plugins that implement create_distro and other methods. That happens through 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 π
Say thank you to the icons:
- 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>
- 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>. They'll be notified, and then you'll automatically be notified of progress on your bug as changes get made. Bestie gets updates. That's the system. π«Ά
π 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 usingModule::Build::Tinyas an installer.Dist::Millaβ Easy to use and powerful authoring tool usingDist::Zillato create and manage distributions.Minillaβ Authoring tool similar toDist::Millabut without usingDist::Zilla.Dist::Zillaβ Very complex, fully pluggable and customizable distribution builder.
And that's the whole page, bestie! π This was Module::Starter(3pm) β the Perl manual page, perl v5.40.1, dated 2026-01-23. Slay, go build your distro. π
β¨π¦
π¦ where this page comes from
- ubuntu resolute: libmodule-starter-perl 1.800+dfsg-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libmodule-starter-perl 1.800+dfsg-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms