Install Perl modules using CPAN

Jack Wallen
Feb 21, 2010
Updated • Dec 16, 2012

If you've come across any software that requires Perl modules, you might have found yourself pulling out your hair, trying to figure out how to install those modules. You've tried downloading the source, only to find one dependency issue or another. You've searched Synaptic or gnome-packagekit high and low to come up empty handed.

What you may not know is there is a tool specifically designed to help you install Perl modules. The tool? CPAN. CPAN is the Comprehensive Perl Archive Network and contains a vast assortment of software, used by and with Perl, and makes for easy installation. Problem is, most people don't know about CPAN or how to use it.

In this article I will introduce you to the CPAN tool and how it can be used to help you get all the Perl modules you need installed. NOTE: There will be times when CPAN has trouble installing modules. In those cases, the best bet is to download the source and read through the README file for better instructions. Generally speaking though, you should be able to get the majority of modules installed with this tool.

Installing CPAN

If you have Perl installed on your machine, you have CPAN. You can test this out by issuing the command cpan from the command line. If you get the dreaded command not found make sure you have:

  • perl
  • perl-base
  • perl-modules

installed. If one (or more) is missing, mark them for installation and then try the command again. When you have successfully reached the CPAN console your prompt will look like:


When you see that, you're ready to rock.

Basic structure

The basic structure of cpan is simple. Once you're at the command prompt you would issue a command similar to:

install MODULE::NAME

Where MODULE::NAME is the actual name of the module.

But when you first run CPAN the system will ask you a few easy questions. CPAN will want to check for a network connection and so on (hit Enter to accept all of the defaults).

First things

When you have first reached the CPAN prompt you might want to first install a couple of bundle packs that contain numerous modules. The very first install command you will enter is:

install Bundle::CPAN

The above command will install numerous modules, but it might also come up with some errors. Any time you receive an error in CPAN it will report the error to you in the console. Often times the error will point you in a direction that will help to resolve an issue. For example, running install Bundle::CPAN on a fresh install gives me:

Warning: prerequisite Compress::Raw::Zlib 2.024 not found. We have 2.008.
Writing Makefile for IO::Compress
Could not read '/root/.cpan/build/IO-Compress-2.024-1nwcFW/META.yml'. Falling back to other methods to determine prerequisites
---- Unsatisfied dependencies detected during ----
---- PMQS/IO-Compress-2.024.tar.gz ----
Compress::Raw::Zlib [requires]
Compress::Raw::Bzip2 [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]

So, as you can see, CPAN is intelligently resolving your dependency issues for you. In a large install like Bundle:CPAN this can take quite some time.

How to know which module?

If you are trying to install a piece of software on Linux usually you are given a solid roadmap in either the README or INSTALL file with the source. Within that file will be listed any/all Perl modules necessary to meet the installation requirements. And now, with the help of CPAN, you can install them.

Final thoughts

Believe it or not, using CPAN is a simple process. From this easy to use console you can install all of the Perl modules you need. Of course, there is much more to CPAN than this. To find out how much more enter h at the CPAN console for the help file.


Previous Post: «
Next Post: «


  1. The Mighty Buzzard said on February 21, 2010 at 8:13 pm

    Also, if you don’t already have perl, perl-base, and perl-modules installed, you might want to check that you’re actually using Linux (or pretty much any unix or unix-like OS). There’s a very good chance you’re not since perl is part of the base install of almost every *nix variant.

Leave a Reply

Check the box to consent to your data being stored in line with the guidelines set out in our privacy policy

We love comments and welcome thoughtful and civilized discussion. Rudeness and personal attacks will not be tolerated. Please stay on-topic.
Please note that your comment may not appear immediately after you post it.