How to Install Perl Modules Using CPAN on CentOS 8

The Comprehensive Perl Archive Network (CPAN in short) is a popular central repository of currently 188,714 Perl modules in 40,986 distributions. It is a single location where you can find, download and install any of the incredible (and still growing) collection of Perl libraries.

It has 25,000 modules available and it is mirrored on servers around the world. It also supports automated testing: cross-platform and on multiple versions of Perl, and bug tracking for every library. Also, you can search it using various sites on the web, which offer tools such as grep, version-to-version diff as well as documentation.

The CPAN Perl module is a core module that allows you to query, download, build and install Perl modules and extensions from CPAN sites. It has been distributed with Perl since 1997 (5.004). It includes some primitive searching capabilities and supports named and versioned bundles of modules.

In this article, you will learn how to install Perl and Perl modules in CentOS 8 using CPAN.

How to Install Perl CPAN Module in CentOS 8

Before you can use CPAN, you need to install the Perl-CPAN package, using the DNF package manager as shown.

# dnf install perl-CPAN
Install Perl CPAN in CentOS 8
Install Perl CPAN in CentOS 8

Note: Although most Perl modules are written in Perl, some use XS – they are written in C and so require a C compiler which is included in the Development Tools package.

Let’s install the Development Tools package as shown.

# dnf install "@Development Tools"
Install Development Tools in CentOS 8
Install Development Tools in CentOS 8

How to Install Perl Modules Using CPAN

To install Perl modules using CPAN, you need to use the cpan command-line utility. You can either run cpan with arguments from the command-line interface, for example, to install a module (e.g Geo::IP) use the -i flag as shown.

# cpan -i Geo::IP  
OR
# cpan Geo::IP  

When you run cpan for the first time, it requires configuration as shown in the screenshot below. For this guide, we will enter yes to configure it automatically. If you enter no, the configuration script will take you through a series of questions to configure it.

Configure CPAN Automatically
Configure CPAN Automatically

The following screenshot shows the module Geo::IP has been installed on the system.

Perl Module Geo::IP Installed
Perl Module Geo::IP Installed

Alternatively, you can run a cpan without arguments to start CPAN.pm shell. Then use the install sub-command to install a module (e.g Log::Log4perl) as shown.

# cpan
cpan[1]> install Log::Log4perl
Install Perl Modules Using CPAN
Install Perl Modules Using CPAN

How to List Installed Perl Modules and Versions

To list all installed Perl modules with their versions, use the -l flag as shown.

# cpan -l
List Installed Perl Modules
List Installed Perl Modules

How to Search a Perl Module Using CPAN

To search a module, open the cpan shell and use the m flag as shown.

# cpan
cpan[1]> m Net::Telnet
cpan[1]> m HTML::Template
Search Perl Modules Using CPAN
Search Perl Modules Using CPAN

For more information, read the cpan manual entry page or get help from the CPAN shell using the help command.

# man cpan
OR
# cpan
cpan[1]> help

How to Install Perl Modules Using CPANM

App::cpanminus(cpanm) is another popular module used to download, unpack, build and install modules from CPAN. To get it working on your system, install the App::cpanminus module as shown.

# cpan App::cpanminus
Install CPANM Module
Install CPANM Module

You can install a module using cpanm as shown.

# cpanm Net::Telnet
Install Perl Module Using CPANM
Install Perl Module Using CPANM

How to Install Perl Modules from Github

cpanm supports the installation of Perl modules directly from Github. For example, to install the Starman – a high-performance preforking Perl PSGI web server, run the following command.

# cpanm git://github.com/miyagawa/Starman.git
Install Perl Modules from Github
Install Perl Modules from Github

For more usage options, see the cpanm man page.

# man cpanm

CPAN is a single location where you can find, download and install Perl modules; it currently has 192,207 Perl modules in 41,002 distributions. If you have any queries, share them with us via the feedback form below.

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.