App::cpm - a fast CPAN module installer


  > cpm install Module



cpm is a fast CPAN module installer, which uses Menlo in parallel.

Moreover if --prebuilt option is enabled, cpm keeps the each builds of distributions in your home directory. Then, cpm install --prebuilt will use these prebuilt distributions. That is, if prebuilts are available, cpm never build distributions again, just copy the prebuilts into an appropriate directory. This is (of course!) inspired by Carmel.

For tutorial, check out App::cpm::Tutorial.


Why do we need a new CPAN client?

I used cpanm a lot, and it's totally awesome.

But if your Perl project has hundreds of CPAN module dependencies, then it takes quite a lot of time to install them.

So my motivation is simple: I want to install CPAN modules as fast as possible.


Just an example:

  > time cpanm -nq -Lextlib Plack
  real 0m47.705s

  > time cpm install Plack
  real 0m16.629s

This shows cpm is 3x faster than cpanm.


eserte reported that the parallel feature of cpm yielded a new type of failure for CPAN module installation. That is, if ModuleA implicitly requires ModuleB in configure/build phase, and ModuleB is about to be installed, then it may happen that the installation of ModuleA fails.

I can say that it hardly happens especially if you use a new Perl. Moreover, for a workaround, cpm automatically retries the installation if it fails.

I hope that if almost all CPAN modules are distributed with static install enabled, then cpm will parallelize the installation for these CPAN modules safely and we can eliminate this new type of failure completely.


If you all find cpm useful, then cpm should be merged into cpanm 2.0. How exciting!

To merge cpm into cpanm, there are several TODOs:

  • (DONE) Win32? - support platforms that do not have fork(2) system call

  • (DONE) Logging? - the parallel feature makes log really messy

Your feedback is highly appreciated.


Copyright 2015 Shoichi Kaji <>

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


Code repository and issue tracker

Chat room. I would like to hear your thoughts about CPAN clients (not necessary about cpm)


Perl Advent Calendar 2015





1 POD Error

The following errors were encountered while parsing the POD:

Around line 641:

You forgot a '=back' before '=head1'