Dist::Zilla::App::Command::build - build your dist


version 6.025


  dzil build [ --trial ] [ --tgz | --no-tgz ] [ --in /path/to/build/dir ]


This command is a very thin layer over the Dist::Zilla build method, which does all the things required to build your distribution. By default, it will also archive your distribution and leave you with a complete, ready-to-release distribution tarball.

To go a bit further in depth, the build command will do two things:

  • Generate a directory containing your module, Foo-0.100. This directory is complete. You could create a gzipped tarball from this directory and upload it directly to PAUSE if you so desired. You could cd into this directory and test your module on Perl installations where you don't have Dist::Zilla, for example.

    This is a default behavior of the build command. You can alter where it puts the directory with --in /path/to/build/dir.

  • Generate a gzipped tarball of your module, Foo-0.100.tar.gz. This file could be uploaded directly to PAUSE to make a release of your module if you wanted. Or, you can test your module: cpanm --test-only Foo-0.100.tar.gz. This is the same thing you would get if you compressed the directory described above.

    The gzipped tarball is generated by default, but if you don't want it to be generated, you can pass the --no-tgz option. In that case, it would only generate the directory described above.

Once you're done testing or publishing your build, you can clean up everything with a dzil clean.


This module should work on any version of perl still receiving updates from the Perl 5 Porters. This means it should work on any version of perl released in the last two to three years. (That is, if the most recently released version is v5.40, then this module should work on both v5.40 and v5.38.)

Although it may work on older versions of perl, no guarantee is made that the minimum required version will not be increased. The version may be increased for any reason, and there is no promise that patches will be accepted to lower the minimum required perl.


  $ dzil build
  $ dzil build --no-tgz
  $ dzil build --in /path/to/build/dir



This will build a trial distribution. Among other things, it will generally mean that the built tarball's basename ends in -TRIAL.

--tgz | --no-tgz

Builds a .tar.gz in your project directory after building the distribution.

--tgz behaviour is by default, use --no-tgz to disable building an archive.


Specifies the directory into which the distribution should be built. If necessary, the directory will be created. An archive will not be created.


Ricardo SIGNES 😏 <>


This software is copyright (c) 2022 by Ricardo SIGNES.

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