[This article is part of our
Popular articles
project to update
Perl.com for contemporary practices]
If you’re reading this article, you’re likely looking for a simple way
to download and install the Perl programming language. Or you already
have Perl installed as part of your operating system, but it’s older
than the currently-supported versions (5.32.1 or 5.30.3) and you’d
like to use the latest and greatest features.
The download
options
may seem daunting, especially
if you’re new to computers or programming. We’ll take things step by
step, and soon you’ll be on your way to writing your first Perl
program.
A word of warning, though: Several of these steps (and usually Perl
itself) require using your computer’s command-line or terminal
interface.
The first step: Download pre-built
If you’re getting started in Perl development, you may only need a
pre-built binary distribution. Further on, though, you might want to
consider building your own, especially if you need to juggle different
versions to support different environments or want to use a later
version than is available pre-made.
For now, though, let’s consider the pre-built options. You have
several, depending on what computer operating system you’re using.
Microsoft Windows
The two main “flavors” of Perl for Windows are
ActiveState Perl
and
Strawberry Perl
. Which one you choose depends
on what you plan to use it for.
ActiveState
provides a
free community edition of ActivePerl
licensed only for development purposes. If you intend to do
commercial work or want technical support beyond community forums, you’ll
need to
subscribe to a team plan or higher
.
The free community edition is also 64-bit only, and as of this writing, only
the earlier versions 5.28 (2018) and 5.26 (2017) are available, with an
experimental 5.32 (2020) release licensed for any purpose. The latter is
also currently only installable via the Windows command line; earlier
versions use a standard Windows setup wizard.
Strawberry Perl
is a Perl environment for
Windows that strives to be as close as possible to Perl on Unix and Linux
systems, where the language got its start. Besides the Perl binaries, it
also includes a compiler, related tools, external libraries, and database
clients. This is important as many modules for extending Perl’s
functionality need a compiler. It’s also available in both 64-bit and
32-bit editions of the current 5.32 version.
What do I recommend?
There’s no escaping Perl’s Unix heritage, so you’ll
have an easier time with Strawberry Perl. That said, if you think you’ll be
taking advantage of ActiveState’s commercial offerings of support and their
ActiveState Platform
for
managing different language runtimes, you may want to give them a try.
Windows also has two Linux-like environments in the form of
Cygwin
and
Windows Subsystem for Linux
.
Follow the Linux directions below to install Perl in one of these.
There is also the
Chocolatey
package manager for
Windows, which provides an option for installing either ActiveState or
Strawberry Perl.
Apple macOS
macOS comes with Perl pre-installed: version
5.18 (2013) on macOS Catalina 10.15 and 5.28 (2018) on Big Sur 11. But,
Apple has said that scripting language runtimes are deprecated
,
and are only “included … for compatibility with legacy software.” You
should consider installing your own.
Like Windows, ActiveState has a
free community edition
for developers. The Windows caveats above apply, except for a current Perl
version 5.32—it’s “coming soon” as of this writing.
Your best bet is to
install the Homebrew package manager
in the macOS Terminal application (after
installing its requirements
),
and then issue the command
brew install perl
. This will install the latest
version of Perl, as well as give you instructions for making sure that
installed Perl modules stay that way across updates by Homebrew.
Linux or another Unix-like system
Like macOS, most Linux and Unix
systems come with Perl pre-installed, or installable using the operating
system’s software package manager. Also like macOS, these are usually older
versions provided for compatibility with other software provided by the
To install your own on Linux, you can
go the ActiveState route
as above, or also use the
Homebrew package manager
. There are
several requirements to install first
,
and then you can
follow the directions for installing Homebrew
and issue
the command
brew install perl
.
For other Unix systems with an older version of Perl, I’m afraid you’re going
to have to build from source as detailed below.
Next steps: Building your own with perlbrew or plenv
Perl’s source code (the instructions that build a program) is freely
available and compiles on
over 100
platforms
. You can
download
it directly
and build a version
yourself, after installing any prerequisite packages used to build
software on your operating system (see below). However, most Perl
developers choose to use a tool to automate that process and manage
different versions of Perl side-by-side. Enter
perlbrew
.
Perlbrew requires an already-installed system version of Perl, but it
can be as old as 5.8 (2002), which should cover most Linux and Unix
systems in use today. Once you’ve installed your operating system’s
build tools and followed the directions on
the perlbrew home
page
, typing
perlbrew install 5.32.1
followed
by
perlbrew switch 5.32.1
will install and switch to the latest
version of Perl as of this writing. Installing older versions of Perl
and switching between them use the same steps, e.g.:
perlbrew install 5.30.3 --as older-perl
perlbrew switch older-perl
I use an alternative,
plenv
,
which uses a different mechanism to manage versions of Perl using the
bash
command shell. It also enables you to use different versions of Perl depending
on which file system directory you’re working in. It’s
set up
using either Homebrew or
git
.
Windows users have the option of
berrybrew
, which acts much like
perlbrew for Strawberry Perl with slightly different
options
.
Building from the source directly
If you feel you don’t need to manage multiple installations of Perl or you
want to do things old-school, you can always download and build directly from
the source code. Select “Download Latest Stable Source” from the
Perl Download
web page, then
unarchive it
into a directory.
You should always check the included
README
files for information on how to
build on your system; there’s a generic one as well as specific
README
s for
various platforms (
README.linux
,
README.macosx
,
README.win32
, etc.).
Note that the
README.macosx
document applies to current versions of macOS,
which was previously called Mac OS X;
README.macos
is for the “Classic”
Macintosh operating system, unsupported since 2004.
On most Unix-like systems (including macOS), you can then configure, build,
test, and install Perl by issuing the following commands:
./Configure -des -Dprefix=/usr/local/
make test
sudo make install
This will build Perl with all default options for your system and install it
in the
/usr/local
directory.
Up and running
Regardless of whether you’ve chosen to install a pre-built package or roll
your own, you should now be able to issue the following at your command line:
…and receive a reply that looks something like this:
This is perl 5, version 32, subversion 1 (v5.32.1) built for darwin-2level
(with 1 registered patch, see perl -V for more detail)
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Congratulations, you’re now using the latest version of Perl on your computer!
Now head on over to
Perl.org
and start learning!
Mark Gardner
Mark helps professional Perl developers to engineer modern, disciplined applications in the cloud so that they can become experts that write easy-to-maintain code with confidence. He blogs at
PhoenixTrap.com
and works for
HostGator
as a software engineer.
Legal
Perl.com and the authors make no representations with respect to the accuracy or completeness of the contents of all work on this website and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. The information published on this website may not be suitable for every situation. All work on this website is provided with the understanding that Perl.com and the authors are not engaged in rendering professional services. Neither Perl.com nor the authors shall be liable for damages arising herefrom.