CPAN and Dependency Management
24.1 Installing Modules
cpanm Moo # cpanminus: fast, zero-config (recommended)
cpanm --installdeps . # install dependencies from cpanfile/Makefile.PL
cpanm -n Mojolicious # skip tests (faster, riskier)
cpanm --local-lib=~/perl5 Module # install to a user directory
cpan Module # the classic CPAN shell
sudo apt install libmoo-perl # OS packages (system Perl)24.2 local::lib and Carton
cpanm local::lib
eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)" # use ~/perl5 for user modules
# cpanfile: declare dependencies
cat > cpanfile <<'EOF'
requires 'perl', '5.036';
requires 'Mojolicious', '>= 9.0';
requires 'DBI';
requires 'DBD::Pg';
on 'test' => sub {
requires 'Test2::V0';
};
EOF
carton install # install into ./local and write cpanfile.snapshot (lockfile)
carton exec perl app.pl # run with locked dependencies
carton bundle # vendor the tarballs for offline deploys
# Alternatives: Carmel, cpm (fast parallel installer: cpm install -g)24.3 Finding Good Modules
MetaCPAN (metacpan.org): search, docs, reviews, "river" position (how many depend on it), test results (CPAN Testers), and the source repository.
Task::Kensho: a curated list of recommended modern modules.
Prefer actively maintained modules with good test coverage and many reverse dependencies.