< BACKCONTINUE >

A.1 Perl

The documentation for Perl is extensive. It includes lists of FAQs (Frequently Asked Questions, with answers), tutorials, precise definitions in the form of Unix-style manpages, and discussions of specific areas. There are various web sites, a well-organized storehouse of useful Perl programs called CPAN, newsgroups that have searchable archives, conferences, and many good books. It's also worth your while to find and cultivate your own local Perl community. Don't be afraid to engage your colleagues, though as your programming skills grow, they're liable to start asking you questions!

As I've mentioned before, Perl is free. It's part of the wider open source movement, which includes such developments as Linux, the Apache web server, and so on. Since Perl is free, it relies on a community of interested parties to develop code and to write documentation. Because of this, you may notice that a lot of the documentation is a bit fragmented (or, in some cases, very fragmented). Still, the level of support for all these projects equals that available for the best of the commercial software packages.

A.1.1 Web Site

http://www.perl.com

This is the starting point for all things Perl. By all means, explore it. From here, you'll find many more sites dedicated to various aspects of Perl programming. Among several, you might find http://www.perl.org especially useful.

A.1.2 CPAN: Comprehensive Perl Archive Network

http://www.cpan.org/

The Comprehensive Perl Archive Network is an important resource and is the place to look for Perl modules. It's also a repository for other software, documentation, and web links. Before taking the time to write a program yourself, look here first to see if it has already been written.

A.1.3 FAQs: Frequently Asked Questions

http://www.perl.com/pub/v/faqs

FAQs are a compendium of the most common questions newcomers ask, along with answers, that are usually quite helpful. As a beginning programmer, it is a good idea to take the time to read the Perl FAQs—skimming as necessary—in order to get the lay of the land.

You should spend at least enough time reading them to get an idea of what sorts of questions are archived in the FAQs. Be sure to check the FAQs before asking for help from a local expert or posting to a newsgroup. Repeatedly asking questions that have already been exhaustively answered in the FAQs, especially on the Perl newsgroups, might be considered irritating.

You'll find that the Perl FAQs are divided into several parts. When consulting FAQs, look for the date when they were last updated; this isn't a big problem with Perl, but in general, you can find lots of out-of-date information on the Web.

A.1.3.1 Beginners

There are several documents aimed at beginners in the FAQs and in the documentation. There are some other beginning books besides this one, mentioned elsewhere in this appendix. There are also some online tutorials and beginners' articles about Perl at http://learn.perl.org (this is new as I write but looks very promising). There are also a number of mailing lists you can subscribe to, including a mailing list called beginners@perl.org, which you can subscribe to by visiting http://lists.perl.org.

A.1.4 Online Manuals

http://www.perl.com/pub/v/documentation

The Perl manual is available online at the Perl web site mentioned earlier. It should also be installed on your computer. You can access it by typing perldoc perl. On Unix/Linux systems, you can also type man perl to get the beginning manpage. As that explains, the manual is split into several pages. For instance, to find the manual for Perl's built-in functions, type man perlfunc or perldoc. HTML versions of the manual exist, and they can be installed on your local computer. This is my preferred method of accessing the documentation: it gives you links that make navigating easier, and if it's installed locally, you can use it even when you're not connected to the Internet.

A.1.5 Books

There are lots of Perl books. Many of them are excellent; some are not. Here's a short list of the Perl books I've found most useful in my own work.

Programming Perl, Third Edition; by Larry Wall, Tom Christiansen, and Jon Orwant; O'Reilly & Associates. This is the standard book on Perl by the creator of the language. It explains pretty much everything, although it can lag behind the latest version of Perl. So the absolute authority for your installation should be the online manuals. Programming Perl covers a lot of ground; it's good as a reference, a tutorial, and as a ripping yarn if you're into that sort of thing. It presents some of the philosophy behind the language, so it's a good way to absorb some of the computer-science mindset. Earlier editions, if you happen to have them, will also serve; I'm particularly fond of the first edition.

Perl Cookbook, by Tom Christiansen and Nathan Torkington, O'Reilly & Associates. This is billed as the companion volume to Programming Perl, and so it is. Here, you will find examples that use Perl for different tasks. It's a great help in many situations, and if you will be doing much Perl programming, it's worth taking at least a few hours to peruse it.

Mastering Algorithms with Perl; by Jon Orwant, Jarkho Hietaniemi, and John Macdonald; O'Reilly & Associates. I've mentioned the importance of studying algorithms and this fine book presents many important algorithms in the context of Perl. It explains concepts and gives code; it doesn't, however, teach the mathematics of analyzing and measuring algorithms. Really serious algorithms students will find that information in texts such as Introduction to Algorithms by Corman, Leiserson, and Rivest. Even if you're a novice programmer, this is still a valuable book, and you'll find lots of code you'll be able to use.

Mastering Regular Expressions; by Jeffrey R. Friedl, O'Reilly & Associates. A good book on an important topic with excellent coverage of Perl.

Elements of Programming in Perl, by Andrew L. Johnson, Manning Publications. This is another book intended for beginners. It's very good, and I recommend it as a supplement to this text.

Learning Perl, Third Edition; by Randall L. Schwartz and Tom Christiansen; O'Reilly & Associates. This is the classic tutorial book on Perl. It's well-written and well-organized. If you've gotten through Beginning Perl for Bioinformatics, you should have no trouble with Learning Perl.

Object-Oriented Perl, by Damian Conway, Manning Publications. A superb book on the topic suitable for the beginning or advanced programmer.

A.1.6 Conference

O'Reilly Open Source Convention. This convention now includes the yearly Perl Conference. It's a chance to attend classes and lectures and meet Perl practitioners of all sorts. There are also regular YAPC (yet another Perl conference) meetings; you'll find the details at the main Perl web site.

A.1.7 Newsgroups

Perl newsgroups are an important resource for programmers. If you've never seen them, they're accessible over the Web (among other ways). They give you the ability to write a message to a large group of people with interests in any of hundreds of specific topics. If you have a question that you haven't been able to answer in the Perl documentation or the FAQs, searching the newsgroups for the topic of your question can often result in an answer. You can also post a question to a newsgroup if you can't find an answer already provided: but this is not often necessary.

I want to emphasize how useful this resource is. The drawback is that there tends to be a "low signal-to-noise ratio": in other words, there's often a lot of uninformative material in newsgroups. But it can be worth wading through; even negative responses (no known solution to the problem) can save you time and effort.

There are a number of newsgroups related to Perl in the comp.lang.perl hierarchy. The search engine deja.com (recently sold to google.com but still available) lets you search the archives of these newsgroups. More information is available in the Perl FAQs about specific newsgroups; for instance, many specific Perl modules have their own newsgroups, mailing lists, or web sites. The CPAN web site is another place to find searchable newsgroup archives.

< BACKCONTINUE >

Index terms contained in this section

beginners in Perl, resources for
built-in functions, Perl
      online manual
conferences
      on Perl
CPAN (Comprehensive Perl Archive Network)
documentation
      Perl
            online manuals
FAQs, Perl
      newsgroup information
functions
      Perl, online manual
mailing lists for Perl beginners
manuals (online), for Perl
modules
      CPAN (Comprehensive Perl Archive Network)
newsgroups, Perl
online manuals, Perl
Perl
      CPAN (Comprehensive Perl Archive Network)
      resource materials
resources
      Perl
web sites
      CPAN
      Perl
            beginners
            FAQs

© 2002, O'Reilly & Associates, Inc.