MODULE-STARTER(1)

πŸ“¦
version 1.82 Β· 2 versions
, in fedora 44

✨ NAME ✨

module-starter β€” creates a skeleton module distribution πŸ’–

okay so real quick, bestie: this is the module-starter(1) page, straight out of the User Contributed Perl Documentation collection. it makes you a whole module distribution skeleton and it does NOT miss. 🫢


🌸 VERSION 🌸

version 1.82 ✨


πŸŽ€ SYNOPSIS πŸŽ€

module-starter [options]

here's the whole options menu, no cap πŸ‘‘

  • --module=module β€” the module name. this one is required, and you can repeat it as many times as your heart desires.
  • --distro=name β€” distribution name (optional).
  • --dir=dirname β€” directory name to create the new module in (optional).
  • --builder=module β€” build with 'ExtUtils::MakeMaker' or 'Module::Build'.
  • --eumm β€” literally just --builder=ExtUtils::MakeMaker.
  • --mb β€” same energy as --builder=Module::Build.
  • --mi β€” same as --builder=Module::Install, but discouraged 🚩
  • --author=name β€” the author's name (taken from getpwuid if you don't provide one) plus the email address (taken from $ENV{EMAIL} if the author's name isn't provided). Format: Author Name <author_email@domain.tld>. you can supply this option 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 β€” the license the module will be distributed under (default is artistic2).
  • --genlicense β€” generate the LICENSE file according to the 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. iconic behavior tbh.

πŸ“ 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>"

πŸ’… DESCRIPTION πŸ’…

module-starter is a command-line interface to Module::Starter, and it uses it 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 gets used for the directory. and if no distribution name is supplied, the first listed module name becomes the distribution name. the way it just figures it out for you? main character energy fr fr.

multiple --builder options may be supplied to produce the files for multiple builders. go off, honestly. πŸ”₯


πŸ¦‹ CONFIGURATION πŸ¦‹

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 <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 don't stress. 🧚


that's the whole page, bestie!! this one's from perl v5.42.0, dated 2026-01-17 β€” go make a distribution, you're gonna slay πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from