# NAME

cpanfile - A format for describing CPAN dependencies for Perl applications

# SYNOPSIS

   requires 'Catalyst', '5.8000';
   requires 'Catalyst::View::JSON', '>= 0.30, < 0.40';

   recommends 'JSON::XS', '2.0';
   conflicts 'JSON', '< 1.0';

   on 'test' => sub {
       requires 'Test::More', '>= 0.96, < 2.0';
       recommends 'Test::TCP', '1.12';
   };

   on 'develop' => sub {
       recommends 'Devel::NYTProf';
   };

# VERSION

0.9000

# DESCRIPTION

`cpanfile` describes CPAN dependencies required to execute associated
Perl code.

Place the `cpanfile` in the root of the directory containing the
associated code. For instance, in a Catalyst application, place the
`cpanfile` in the same directory as `myapp.conf`.

Tools supporting `cpanfile` format (e.g. [cpanm](http://search.cpan.org/perldoc?cpanm) and [carton](http://search.cpan.org/perldoc?carton)) will
automatically detect the file and install dependencies for the code to
run.

# AUTHOR

Tatsuhiko Miyagawa

# ACKNOWLEDGEMENTS

The format (DSL syntax) is inspired by [Module::Install](http://search.cpan.org/perldoc?Module::Install) and
[Module::Build::Functions](http://search.cpan.org/perldoc?Module::Build::Functions).

`cpanfile` specification (this document) is based on Ruby's
[Gemfile](http://gembundler.com/man/gemfile.5.html) specification.

# SEE ALSO

[CPAN::Meta::Spec](http://search.cpan.org/perldoc?CPAN::Meta::Spec) [Module::Install](http://search.cpan.org/perldoc?Module::Install) [Carton](http://search.cpan.org/perldoc?Carton)