App::cpm(3pm)

πŸ“¦
version 0.998.3 Β· 5 versions
, in fedora 44

πŸ’– 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 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 🌟


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