The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


App::Module::Setup - a simple setup for a new module


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

    module-setup --author="A.U. Thor" Foo::Bar


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

App::Module::Setup is used to create a skeletal CPAN distribution, including basic builder scripts, tests, documentation, and module code. This is done through just one method, main.


App::Module::Setup->main( $options )

main 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 the distribution and populates it with the all the requires files.

It takes a reference to a hash of params, as follows:

    module       # module to create in distro
    version      # initial version
    author       # author's full name (taken from C<getpwuid> if not provided)
    email        # author's email address
    verbose      # bool: print progress messages; defaults to 0
    template     # template set to use
    postcmd      # array ref of commands to execute after creating
    install-templates # bool: just install the selected templates
    minperl      # minimal perl version, e.g. 5.010000
    license      # e.g. perl_5


Johan Vromans, <jv at>


Please report any bugs or feature requests to bug-app-module-setup at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


Development of this module takes place on GitHub:

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

    perldoc App::Module::Setup

Please report any bugs or feature requests using the issue tracker on GitHub.


David Golden, for giving me the final incentive to write this module.

I borrowed many ideas from Module::Starter which was originally written by Andy Lester (PETDANCE). Its current design came from Ricardo Signes (RJBS). Sawyer X added features and maintains the module after them.


Copyright 2013,2018 Johan Vromans, all rights reserved.

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