FAQ 1.8 Is Perl difficult to learn?

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.8: Is Perl difficult to learn?

    No, Perl is easy to start learning--and easy to keep learning. It looks
    like most programming languages you're likely to have experience with,
    so if you've ever written a C program, an awk script, a shell script, or
    even a BASIC program, you're already partway there.

    Most tasks only require a small subset of the Perl language. One of the
    guiding mottos for Perl development is "there's more than one way to do
    it" (TMTOWTDI, sometimes pronounced "tim toady"). Perl's learning curve
    is therefore shallow (easy to learn) and long (there's a whole lot you
    can do if you really want).

    Finally, because Perl is frequently (but not always, and certainly not
    by definition) an interpreted language, you can write your programs and
    test them without an intermediate compilation step, allowing you to
    experiment and test/debug quickly and easily. This ease of
    experimentation flattens the learning curve even more.

    Things that make Perl easier to learn: Unix experience, almost any kind
    of programming experience, an understanding of regular expressions, and
    the ability to understand other people's code. If there's something you
    need to do, then it's probably already been done, and a working example
    is usually available for free. Don't forget Perl modules, either.
    They're discussed in Part 3 of this FAQ, along with CPAN, which is
    discussed in Part 2.


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