Chapter 2. Using libraries

2.2. Installing libraries with cpanm

The best way to install modules is with cpanm.

How to install cpanm

Hopefully its already installed, but if not:

curl -L https://cpanmin.us | perl - --sudo App::cpanminus

Basic usage

cpanm --help         # get help
cpanm URI            # install the URI module from CPAN
cpanm DateTime@1.44  # install version 1.44

Installing to a locallib

You will have a different set of dependencies for each project and sometimes requirements conflict between projects. Here is how to install your dependencies to a local directory in your current project:

cpanm --local-lib <path> <module>[@version]
cpanm --local-lib local URI   # install to ./local
cpanm -l local URI            # same but less typing

To use a dependency installed to a locallib, include the path in your $PERL5LIB environment variable:

$ export PERL5LIB=./lib:./local/lib/perl5:$PERL5LIB
$ echo $PERL5LIB
./lib:./local/lib/perl5:/opt/perlbrew/libs/perl-5.26.1@mylib/lib/perl5

For more information about locallibs see the documentation for the local::lib module.

Best practices

You should almost always install to a locallib rather than the system directory.