Purpose of the Book

The purpose of this book is to introduce the student to the rich features of Perl. The text includes a large number of examples of working Perl programs in each chapter. I feel that well-motivated examples with accompanying brief explanations present the best pedagogical style in describing a programming language. A student who reads the chapters of the book, types in the example programs provided and develops his or her own code in parallel, should become an expert in Perl in a short period of time.

The material covered in this book has been used in several classes in the Computer Science Department at the University of Colorado at Colorado Springs. These are CS 301: Web Programming, CS 509: Bioinformatics, CS 582: Artificial Intelligence, CS 583: Advanced Artificial Intelligence, and CS 592: Applied Cryptography. In CS 301, the material is used for about 6 to 8 weeks, and then referred to throughout the rest of the class. In CS 301, the emphasis is on getting familiar with Perl and write CGI programs. In CS 509, students use Perl to search genome and protein databases, perform pair-wise and multiple alignments in genomic and protein databases. CS 583 focusses on intelligent Internet Systems and the students start programming on the Internet right away. Perl is useful to building systems that fetch materials from the Internet for analysis. Students working on projects such as building search engines of various levels of sophistication, categorizing and classifying material on the Web, personalizing Web pages, learning programs that distill information from the Web, have used the material in this book. In CS 592, network programming and cryptographic programming are discussed.

The material in the book also has been used by professional programmers who are either new to Perl or have used it before, but not for a long period of time. The book is ideal for a professional programmer who wants to get started with Perl without any delay whatsoever. Some of the examples in the book are smaller versions of the programs the author himself has written while consulting with several companies during summers away from academia. For example, the author has used Perl, while working for a company, to write programs that detect spam in incoming email using Bayesian probabilities as well as evolutionary programming. The author used Perl to write code that crawls the Web and creates personalized newspapers. The author has also used Perl to interact with large databases.

In summary, the author recommends this book to college and university students who want to use Perl for programming for class assignments and projects, but do not have access to a class that teaches Perl in depth. It is also for students who want to use Perl for their thesis or dissertation programming in diverse areas such as Web programming, databases, artificial intelligence, networking, bioinformatics, etc. I also recommend the book to those in industry or those who are self-employed and want to use Perl in of these areas, and have to learn it on their own.
This is my first effort at writing a book. Please send any comments or error reports to the author at the address given below.

Jugal Kalita
Associate Professor
Department of Computer Science
University of Colorado
1420 Austin Bluffs Parkway
Colorado Springs CO 80918
Email: kalita@pikespeak.uccs.edu
URL: http://www.cs.uccs.edu/~kalita