Site menu:

A site for Perl programming innovations.

Perl is a family of high-level, general-purpose, interpreted, dynamic programming languages. The languages in this family include Perl 5 and Perl 6. Perl 5 is a highly capable, feature-rich programming language with over 30 years of development. Perl 5 runs on over 100 platforms from portables to mainframes and is suitable for both rapid prototyping and large scale development projects.

Perl 6

Perl 6 is a new production-ready multi-paradigm language in the Perl family. It offers everything from low-level bitwise operations on raw bytes, to a full range of built-in system commands, to hygenic source code macros, to direct symbol-table introspection and manipulation, to run-time composition of multiply-dispatched multimethods from mixins, to object-oriented parsing grammars with hybrid DFA/NFA rules, to concurrent higher-order functions applied over infinite lists of pipelined arbitrary precision integers.

More importantly, Perl 6 does not restrict you to a single paradigm across your entire application; nor within a single compilation unit, namespace, block, subroutine, or even statement. Instead, you can easily combine and integrate all these functional, procedural, declarative, OO, and concurrent constructs within any chunk of code, no matter how small, without losing readability or efficiency. We call it "transparadigm programming": not five separate choices of computation model, but a single computation model with five integrated choices.

In other words, we stole the best features from 20 different languages, and then spent over a decade working out how to fit them together in a way that is clean, efficient, powerful, and still usable by actual human beings. Perl 6 was the result.

Perl 6 is now the pre-eminent example of the imperative, declarative, functional, parallel, concurrent, pipelined, vector, object-oriented, aspect-oriented, reactive, introspective, and metaprogramming paradigms

- Dr Damian Conway (one of the principle designers of Perl 6)

Some of the features in Perl 6 include

General information (Perl 5)

In addition to CGI, Perl 5 is used for graphics programming, system administration, network programming, finance, bioinformatics, and other applications. It is nicknamed "the Swiss Army chainsaw of scripting languages" because of its flexibility and power.


Perl is dual licensed under both the Artistic License and the GNU General Public License. Distributions are available for most operating systems. It is particularly prevalent on Unix and Unix-like systems, but it has been ported to most modern (and many obsolete) platforms. With only six reported exceptions, Perl can be compiled from source code on all POSIX-compliant, or otherwise-Unix-compatible platforms.

Because of unusual changes required for the Mac OS Classic environment, a special port called MacPerl was shipped independently.

The Comprehensive Perl Archive Network carries a complete list of supported platforms with links to the distributions available on each. CPAN is also the source for publicly available Perl modules that are not part of the core Perl distribution.


Users of Microsoft Windows typically install one of the native binary distributions of Perl for Win32, most commonly Strawberry Perl or ActivePerl. Compiling Perl from source code under Windows is possible, but most installations lack the requisite C compiler and build tools. This also makes it difficult to install modules from the CPAN, particularly those that are partially written in C.

ActivePerl is a closed source distribution from ActiveState that has regular releases that track the core Perl releases.The distribution also includes the Perl package manager (PPM),a popular tool for installing, removing, upgrading, and managing the use of common Perl modules.

Strawberry Perl is an open source distribution for Windows. It has had regular, quarterly releases since January 2008, including new modules as feedback and requests come in. Strawberry Perl aims to be able to install modules like standard Perl distributions on other platforms, including compiling XS modules.

The Cygwin emulation layer is another way of running Perl under Windows. Cygwin provides a Unix-like environment on Windows, and both Perl and CPAN are available as standard pre-compiled packages in the Cygwin setup program. Because Cygwin also includes the gcc, compiling Perl from source is also possible.