Read an Excerpt
Preface: About the Author
Ellie Quigley is president of Learning Enterprises, LE, a small training/consulting company specializing in teaching UNIX related subjects and writing customized classes for on-site training. The original version of Perl by Example was designed as a Perl Programming class for the University of California, Extension, Santa Cruz, complete with training guide and exercises. Due to the success of the class, this book evolved. She has also authored UNIX Shells by Example, published by Prentice Hall last year. Any comments or questions can be forwarded to Ellie Quigley at Learning Enterprises by e-mail: firstname.lastname@example.org.
I would like to send a special appreciation to Mark Houser, a system administration instructor for Remedy Corporation. Mark, with an MS in computer science, enjoys "extending his systems beyond the ordinary" with tools like Perl. He has always been there to answer questions, and he donated his taintperl database application in Appendix B. Mark's email address is mark.houser@EBay.Sun.COM.
I also owe a great deal to Deac Lancaster, a true scholar, co-worker, and good friend. While working for Sun Education, Deac spent many an evening after a long teaching day to guide me patiently through the workings of sockets, message queues, and semaphores. He loaned me his demo C programs, and together we re-wrote them in Perl for this book. Deac is now teaching at Remedy Corporation. Thanks, Deac! John Nouveaux, from Nouveaux Consulting, Santa Rosa, California, has also contributed a number of his Perl programs for the Appendix B in this book. John, an expert network programmerand system administrator, is a consultant and a dynamic teacher, specializing in connectivity issues using tcp/ip and the Internet.
Thanks also to Steve Hanson for his system administration work and to George Williams for compiling the CD-ROM and setting up the Web server.
Richard Evans, from Sun Microsystems, volunteered his time to test the examples in this book and offered helpful suggestions on how to improve them. Thank you, Richard.
Of course, appreciation to my editors, Mark Taub and Patti Guerrieri, for teaching me about the book business and patiently awaiting overdue chapters and correction pages. And to Roberta Harvey, from RAH Consulting, for her technical review and valuable criticism.
Thanks to Perl pioneers Larry Wall and Randal L. Schwartz, authors of the following books: Learning Perl by Randal L. Schwartz and Perl Programming by Larry Wall and Randal L. Schwartz.
And last, but not least, a huge thanks to all of my students out there who helped me learn Perl and kept it fun.
A picture is worth a thousand words, and so is a good example. Perl by Example is organized to teach you Perl from scratch with examples of complete succinct programs. Each line of a script sample is numbered, and important lines are highlighted. The output of the program is then displayed with numbers corresponding to the script numbers. Following the output is a separate explanation for each of the numbered lines. The examples are small and to the point for the topic at hand. Since the backbone of this book was used as a student guide to Perl, the topics are modularized. Each module builds on the previous one with a minimum of forward referencing and a logical progression from one topic to the next.
Perl by Example is not just a beginner's guide, but a complete guide to Perl. It covers many aspects of what Perl can do, from regular expression handling, to formatting reports, to interprocess communication. It will teach you about Perl and, in the process, a lot about UNIX. Although some UNIX knowledge will greatly accelerate your learning path, it is not assumed that you are a guru. Anyone reading, writing, or just maintaining Perl programs can greatly profit from this text. Topics such as networking, system calls, IPC, and CGI are designed to save the time it takes to figure out how the functions work, what libraries are needed, and the correct syntax, etc. Now, in this second edition, Perl5 objects and references have been added, and since Perl is the standard for writing CGI scripts for the Internet, there is a chapter to get you started writing your own dynamic Web pages.
Perl has a rich variety of functions for handling strings, arrays, the system interface, networking, and more. In order to understand how these functions work, background information concerning the how's, why's, and what for's is provided before demonstrating sample programs that function. This eliminates constantly wading through manual pages and other UNIX books to understand what is going on, what the arguments mean, and what the function actually does.
The Appendices contain a complete list of functions and definitions, command line switches, debugging options, special variables, Perl translators and sample scripts, including a fully functional, annotated Perl program using taintperl and interfacing with a database application.
I have been teaching now for the past 30 years and am committed to understanding how people learn. Having taught Perl now for over a year, I find that many new Perlers get frustrated when trying to teach themselves how to program in Perl. I, too, experienced frustration when first tackling Perl. So I wrote a book to help myself learn and to help my students, and now to help you. In my book you will not only learn Perl, you will also save yourself a great deal of time.