App::cpm(3pm)
π App::cpm β the fast CPAN module installer π
okay bestie, sit DOWN, because this is App::cpm, a Perl module that lives in your terminal and installs CPAN modules at genuinely unhinged speed. no cap. it's giving "I have places to be" energy and honestly? obsessed.
β¨ NAME β¨
App::cpm β a fast CPAN module installer π
πΈ SYNOPSIS πΈ
> cpm install Module
that's it. that's the whole vibe. one line and your module is home. π
π¦ DESCRIPTION π¦
so like, cpm is a fast CPAN module installer. that's the elevator pitch, but let me give you the lore.
cpm keeps each build of distributions in your home directory and reuses them later. which means β and this is the iconic part β if prebuilts are available, cpm never builds distributions again. it just copies the prebuilts into an appropriate directory. no rebuilding, no waiting, no crying. β¨
and yeah, this whole approach is (of course!) inspired by Carmel. credit where credit is due, we love a muse. π
if you want the full walkthrough, go check out App::cpm::Tutorial. it's the tutorial, it's right there, it's free. π
π MOTIVATION π
okay so why do we even need a new CPAN client? valid question, bestie, let me explain.
I used cpanm a lot, and it's totally awesome. truly no notes, an icon, a legend. π«Ά
BUT. if your Perl project has hundreds of CPAN module dependencies, then it takes quite a lot of time to install them. like, a LOT. the kind of time where you go make a snack and come back and it's still going. π
so my motivation is simple: I want to install CPAN modules as fast as possible. periodt. π
π₯ HOW FAST? π₯
just an example, because numbers speak louder than vibes:
> time cpanm -nq -Lextlib Plack
real 0m47.705s
> time cpm install Plack
real 0m16.629s
so yeah β this shows cpm is 3x faster than cpanm. three times. ate and left no crumbs. π₯π
π CAVEATS π
okay bestie, we gotta be real for a sec, because this part is important.
eserte (that's <https://github.com/skaji/cpm/issues/71>) reported that the parallel feature of cpm yielded a new type of failure for CPAN module installation. so here's the scenario: 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. π¬
not me installing things in parallel and creating a whole new genre of problem π
I can say that it hardly happens, especially if you use a new Perl. and moreover β for a workaround β cpm automatically retries the installation if it fails. so like, it picks itself back up, dusts itself off, main character energy. π«Ά
I hope that if almost all CPAN modules are distributed with static install enabled (<http://blogs.perl.org/users/shoichi_kaji1/2017/03/make-your-cpan-module-static-installable.html>), then cpm will parallelize the installation for these CPAN modules safely and we can eliminate this new type of failure completely. manifesting it fr fr. πβ¨
π COPYRIGHT AND LICENSE π
Copyright 2015 Shoichi Kaji <skaji@cpan.org>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
π SEE ALSO π
- Perl Advent Calendar 2015 β <http://www.perladvent.org/2015/2015-12-02.html> π
App::cpanminusMenloCartonCarmel
and that's the whole page, bestie!! π this one came from the Perl docs, version perl v5.42.0, dated 2026-01-16, and it's the App::cpm(3pm) manual page β go install something fast, you deserve it. π¦πΈπ
π¦ where this page comes from
- fedora 44: perl-App-cpm 0.998.3-2.fc44 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms