FAQ 1.3 Which version of Perl should I use?

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.3: Which version of Perl should I use?

    (contributed by brian d foy)

    There is often a matter of opinion and taste, and there isn't any one
    answer that fits everyone. In general, you want to use either the
    current stable release, or the stable release immediately prior to that
    one. Currently, those are perl5.10.x and perl5.8.x, respectively.

    Beyond that, you have to consider several things and decide which is
    best for you.

    *   If things aren't broken, upgrading perl may break them (or at least
        issue new warnings).

    *   The latest versions of perl have more bug fixes.

    *   The Perl community is geared toward supporting the most recent
        releases, so you'll have an easier time finding help for those.

    *   Versions prior to perl5.004 had serious security problems with
        buffer overflows, and in some cases have CERT advisories (for
        instance, http://www.cert.org/advisories/CA-1997-17.html ).

    *   The latest versions are probably the least deployed and widely
        tested, so you may want to wait a few months after their release and
        see what problems others have if you are risk averse.

    *   The immediate, previous releases (i.e. perl5.8.x ) are usually
        maintained for a while, although not at the same level as the
        current releases.

    *   No one is actively supporting Perl 4. Five years ago it was a dead
        camel carcass (according to this document). Now it's barely a
        skeleton as its whitewashed bones have fractured or eroded.

    *   There is no Perl 6 release scheduled, but it will be available when
        it's ready. Stay tuned, but don't worry that you'll have to change
        major versions of Perl; no one is going to take Perl 5 away from

    *   There are really two tracks of perl development: a maintenance
        version and an experimental version. The maintenance versions are
        stable, and have an even number as the minor release (i.e.
        perl5.10.x, where 10 is the minor release). The experimental
        versions may include features that don't make it into the stable
        versions, and have an odd number as the minor release (i.e.
        perl5.9.x, where 9 is the minor release).


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