MODULE-STARTER(1p)
π NAME π
okay so bestie, welcome to MODULE-STARTER(1p) β she lives in the User Contributed Perl Documentation section, and she does exactly one thing and she does it slay: module-starter creates a skeleton module distribution. β¨
π VERSION π
version 1.80 β yes she's been around, yes she's still iconic, no cap. π
πΈ SYNOPSIS πΈ
module-starter [options]
Options: (aka the menu, aka the vibe check π«Ά)
--module=moduleβ the module name. Required, and you can repeat it as many times as you want.--distro=nameβ the distribution name. optional, no pressure.--dir=dirnameβ the directory name you want your new module to be created in. also optional.--builder=moduleβ build it with'ExtUtils::MakeMaker'or'Module::Build'--eummβ literally the same as--builder=ExtUtils::MakeMaker--mbβ literally the same as--builder=Module::Build--miβ same as--builder=Module::Install(β οΈ discouraged, bestie, just so you know)--author=nameβ the author's name (if you don't give one, it gets taken fromgetpwuid) and the email address (taken from$ENV{EMAIL}if the author's name wasn't provided). Format:Author Name <author_email@domain.tld>. You can hand this option over multiple times for projects with multiple authors β polycule of authors, we love to see it. π--github=loginβ creates links to the author's GitHub issue tracker--ignores=typeβ which ignore type files to include (repeatable)--license=typeβ the license the module will be distributed under (default isartistic2)--genlicenseβ actually generate theLICENSEfile according to the license you specified--minperl=verβ minimum Perl version required (optional; default is5.008003)--fatalizeβ generates code that makes all warnings fatal, via:
use warnings FATAL => 'all'
--verboseβ prints progress messages while it's working (she's narrating her own life, main character energy)--forceβ deletes pre-existing files if it needs to--helpβ shows this message
β¨ Available Licenses β¨
perl, artistic, artistic2, mit, mozilla, mozilla2, bsd, freebsd, cc0,
gpl, lgpl, gpl3, lgpl3, agpl3, apache, qpl
You can also specify any Software::License subclass or CPAN Meta Spec license string. so many options, we're obsessed.
π¦ Available Ignore Types π¦
cvs, git, hg, manifest, generic
(NOTE: Ifmanifestis included, theMANIFESTfile will be skipped and only aMANIFEST.SKIPfile will be included.) β yes this is a real thing, read it twice.
π 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>"
π DESCRIPTION π
module-starter is a command-line interface to Module::Starter, and she uses it to do all the actual work of creating distributions. She's the face, Module::Starter is the brains, it's a whole collab. π€
An alternate backend for module-starter can be specified with the --class option. And plugins to the standard Module::Starter module can be specified with one or more --plugin options. slay.
If you don't supply a directory name, the distribution name gets used for the directory. If you don't supply a distribution name, the first listed module name becomes the distribution name. (First one up gets the crown, sorry to the others. π)
Multiple --builder options may be supplied to produce the files for multiple builders. greedy? no. thorough. periodt.
π CONFIGURATION π
Before she even reads her command line parameters, module-starter goes looking for a configuration file. 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 instead. β¨
The configuration file is just a list of names and values, separated by colons. Values that take lists are just space separated. And heads up bestie β note that the --ignores command line parameter corresponds to the ignores_type configuration file entry. (iykyk π₯)
A sample configuration file might read:
author: Ricardo SIGNES <rjbs@cpan.org>
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. so you're safe, bestie, write it with confidence. π«Ά
π and that's the whole page! she was written by perlv5.40.1, stamped2026-01-23, and filed underMODULE-STARTER(1p). go forth and scaffold, queen. π§π
π¦ 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