FAQ 1.4 What are Perl 4, Perl 5, or Perl 6?

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

This is an excerpt from the latest version perlfaq1.pod, which
comes with the standard Perl distribution. These postings aim to
reduce the number of repeated questions as well as allow the community
to review and update the answers. The latest version of the complete
perlfaq is at http://faq.perl.org .


1.4: What are Perl 4, Perl 5, or Perl 6?

    (contributed by brian d foy)

    In short, Perl 4 is the past, Perl 5 is the present, and Perl 6 is the

    The number after Perl (i.e. the 5 after Perl 5) is the major release of
    the perl interpreter as well as the version of the language. Each major
    version has significant differences that earlier versions cannot

    The current major release of Perl is Perl 5, and was first released in
    1994. It can run scripts from the previous major release, Perl 4 (March
    1991), but has significant differences. It introduced the concept of
    references, complex data structures, and modules. The Perl 5 interpreter
    was a complete re-write of the previous perl sources.

    Perl 6 is the next major version of Perl, although it's not intended to
    replace Perl 5. It's still in development in both its syntax and design.
    The work started in 2002 and is still ongoing. Some of the most
    interesting features have shown up in the latest versions of Perl 5, and
    some Perl 5 modules allow you to use some Perl 6 syntax in your
    programs. The current leading implementation of Perl 6 is Rakudo (
    http://rakudo.org ).

    See perlhist for a history of Perl revisions.


The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
are not necessarily experts in every domain where Perl might show up,
so please include as much information as possible and relevant in any
corrections. The perlfaq-workers also don't have access to every
operating system or platform, so please include relevant details for
corrections to examples that do not work on particular platforms.
Working code is greatly appreciated.

If you'd like to help maintain the perlfaq, see the details in

Site Timeline