Installing and Running Perl
Most Linux distributions and macOS ship with a system Perl already installed, so before installing anything you should open a terminal and run perl -v to check whether a usable version, ideally 5.30 or newer, is already present. On Windows, the two most common distributions are Strawberry Perl, which bundles a C compiler and is preferred for installing CPAN modules with native code, and ActiveState Perl, which focuses on curated, pre-built module bundles for enterprise use. For day-to-day development across platforms, many developers instead use perlbrew or plenv, tools that install and switch between multiple isolated Perl versions in your home directory without touching the system Perl that the operating system itself may depend on.
Cricket analogy: Just as a team checks the pitch report before deciding whether to bring an extra spinner, a developer runs perl -v first to check what version is already on the pitch before deciding whether to install anything.
Verifying Your Installation
Once Perl is installed, perl -v prints the version number and build configuration, while perl -V (capital V) prints a much longer report including the compiler used, installed library paths, and the @INC array of directories Perl searches when you use a module. It is also worth running cpan -v or, on more modern setups, cpanm --version to confirm that a CPAN client is available, since almost every non-trivial Perl project depends on at least one module from CPAN, such as DBI for databases or JSON for serialization. A common early mistake is installing Perl but forgetting to install a CPAN client alongside it; Strawberry Perl bundles cpanm by default, but a minimal system Perl install on Linux sometimes does not.
Cricket analogy: Similar to how a third umpire reviews multiple camera angles before confirming a run-out, running both perl -v and perl -V gives you a quick view and then a detailed multi-angle view of your installation.
Running Perl Scripts
On Linux and macOS, a Perl script typically starts with a shebang line, #!/usr/bin/perl or the more portable #!/usr/bin/env perl, and after making the file executable with chmod +x script.pl you can run it directly as ./script.pl; alternatively you can always run any script explicitly with perl script.pl regardless of permissions. On Windows, the shebang line is ignored by the OS but Strawberry Perl still associates the .pl extension with perl.exe, so double-clicking or running perl script.pl from the command prompt both work. It is standard practice to add use strict; and use warnings; as the first two lines after the shebang, because together they catch typos in variable names and silently dangerous behavior, such as using an undefined value in a numeric context, that Perl would otherwise let slip through without warning.
Cricket analogy: Similar to how a bowler's run-up mark on the pitch tells the umpire exactly where the delivery starts, the shebang line #!/usr/bin/perl tells the OS exactly which interpreter should start executing the script.
# Check your Perl version
perl -v
# Make a script executable and run it directly (Linux/macOS)
chmod +x hello.pl
./hello.pl
# Or run it explicitly with the interpreter (works everywhere)
perl hello.pl
# Install a CPAN module, e.g. JSON, using cpanm
cpanm JSON
Never omit use strict; and use warnings; from a new script, even a throwaway one. Without them, Perl silently auto-creates a global variable the moment you misspell one, so $coutn++ instead of $count++ fails silently instead of raising an error you can actually see.
- Check for a pre-installed Perl with
perl -vbefore installing anything new; most Linux and macOS systems already ship with one. - On Windows, Strawberry Perl (bundles a C compiler and cpanm) and ActiveState Perl are the two common distributions.
- perlbrew and plenv let you install and switch between multiple isolated Perl versions without touching the system Perl.
perl -vgives a quick version summary;perl -V(capital V) gives the full build configuration and @INC module search path.- A CPAN client (cpan or cpanm) is essential since most real Perl projects depend on modules like DBI or JSON from CPAN.
- Scripts are run via a shebang line (
#!/usr/bin/env perl) plus execute permission, or explicitly withperl script.pl. - Always start scripts with
use strict; use warnings;to catch typos and unsafe operations that Perl would otherwise ignore.
Practice what you learned
1. Which command should you run first to check whether Perl is already installed on your system?
2. Which Windows Perl distribution bundles a C compiler and the cpanm client by default?
3. What does `perl -V` (capital V) show that `perl -v` does not?
4. What two pragmas should appear as the first lines of nearly every Perl script?
5. What tool would you use to install and switch between multiple isolated Perl versions in your home directory?
Was this page helpful?
You May Also Like
What Is Perl?
An introduction to Perl's history, design philosophy, and the kinds of real-world problems it is still used to solve today.
Your First Perl Script
A hands-on walkthrough of structuring, running, and debugging a complete beginner Perl script that reads, processes, and prints data.
Perl Operators
A tour of Perl's arithmetic, string, comparison, logical, and assignment operators, and the pitfalls of mixing numeric and string comparisons.
Related Reading
Related Study Notes in Programming
Browse all study notesApache Spark Study Notes
Programming · 30 topics
ProgrammingApache Flink Study Notes
Programming · 30 topics
ProgrammingHadoop Study Notes
Programming · 30 topics
ProgrammingSnowflake Study Notes
Programming · 30 topics
ProgrammingApache Airflow Study Notes
Programming · 30 topics
Programmingdbt (Data Build Tool) Study Notes
Programming · 30 topics