Enables readers to confirm that programs run as expected. Readers can also manipulate the code from the CD-ROM in the back of the book or from the book's Companion Website (www.prenhall.com/deitel).
Students learn from these applications and use them as a reference for real-world applications.
Provides hundreds of valuable programming tips and facilitates learning.
Students can apply what they've learned in each chapter.
Addresses programming and technologies relevant to accessibility for the disabled.
This new book by the world's leading programming language textbook authors carefully explains how to use Perl as a general-purpose programming language and how to program multi-tier, client/server, database-intensive, Internet-and-Web-based applications.
Dr. Harvey M. Deitel and Paul J. Deitel are the principals of Deitel & Associates, Inc., the internationally recognized corporate training and content-creation organization specializing in C++, Java™, C#, C, Visual Basic®, XML™, Python, Perl, Internet, World Wide Web and object technologies. The Deitels are also the authors of the world's #1 Java and C++ textbooks, Java How to Program, 3/e and C++ How to Program, 3/e.
In Perl How to Program, the Deitels and their colleagues, Tem R. Nieto and David C. McPhie, discuss topics you need to build complete, Web-based applications including:
Perl How to Program includes extensive pedagogic features:
(NOTE: Each chapter begins with Objectives, an Outline, and an Introduction and ends with a Summary, Terminology, a summary of all the programming tips in the chapter, Self-Review Exercises, Self-Review Exercise Answers, and Exercises.)
1. Introduction to Computers, the Internet and the World Wide Web.
2. Introduction to Programming in Perl.
3. Control Structures: Part I.
4. Arrays and Hashes.
5. Control Structures: Part II.
6. Subroutines and Functions.
7. Introduction to the Common Gateway Interface (CGI).
8. Regular Expressions.
9. String Manipulation.
10. File Processing.
11. File and Directory Manipulation.
12. Formatted Output.
15. Perl Database Interface (DBI).
16. Session Tracking and Cookies.
17. Web Automation and Networking.
18. Process Control.
20. Complex Data Structures.
21. Graphics and Perl/Tk.
22. Perl and XML: A Web-Based Message Forums Application.
23. Accessibility: Developing for the Disabled.
24. Bonus Chapter: Introduction to HyperText Markup Language 4: Part I.
25. Bonus Chapter: Introduction to HyperText Markup Language 4: Part II.
26. Bonus Chapter: Introduction to Python Programming.
Appendix A: HTML Special Characters.
Appendix B: HTML Colors.
Appendix C: ASCII Character Set.
Appendix D: Operator Precedence Charts.
Appendix E: Number Systems.
Appendix F: Installing Apache Web Server.
Appendix G: Installing Perl.
Appendix H: Installing Python.
Appendix I: Career Resources.
Appendix J: Registering an ODBC Data Source.
Welcome to Perl! This book is by an old guy and three young guys. The old guy (HMD; Massachusetts Institute of Technology 1967) has been programming and/or teaching programming for 40 years. The three young guys (PJD; MIT 1991, TRN; MIT 1992 and DCM Harvard 2000) have each been programming and/or teaching programming for many years. The old guy programs and teaches from experience; the young guys do so from an inexhaustible reserve of energy. The old guy wants clarity; the young guys want performance. The old guy seeks elegance and beauty; the young guys want results. We got together to produce a book we hope you will find informative, challenging and entertaining.
Dr. Harvey M. Deitel taught introductory programming courses in universities for 20 years with an emphasis on developing clearly written, well-designed programs. Much of what is taught in these courses is the basic principles of programming with an emphasis on the effective use of data types, control structures, arrays and functionalization. Our experience has been that students handle the material in this book in about the same manner as they handle it in introductory Pascal or C courses. There is one noticeable difference though: students are highly motivated by the fact that they are learning a leading-edge programming language and a leading-edge programming paradigm (object-based programming) that will be immediately useful to them as they leave the university environment and head into a world of e-business and e-commerce in which the Internet and the World Wide Web have a massive prominence.
Our goal was clear: produce a textbook for introductory university-level courses in programming for students with little or no programming experience, yet offer the depth and the rigorous treatment of theory and practice demanded by traditional, upper-level programming courses to satisfy professionals' needs. To meet this goal, we produced a comprehensive book that patiently teaches the principles of control structures, object-based programming and Internet and World Wide Web programming in Perl. After mastering the material in this book, students will be well prepared to take advantage of the Internet and the Web as they take upper-level courses and venture into the rapidly changing business world.
Perl How to Program is the ninth book in the Deitel/Prentice Hall How to Program series. The key focus of this book is Web-based applications development. Our audiences want to build real-world, industrial-strength, Web-based applications. These audiences care about good looking Web pages. But they also care about client/server systems, databases and distributed computing.
Many books about the Web are reference manuals with exhaustive listings of features. That is not our style. We concentrate on creating real applications. We provide the live-code examples on the CD accompanying this book so that you can run the applications and see the outputs.
We are excited about the enormous range of possibilities the Internet and the Web offer. We performed extensive research for this book and located many Internet and Web resources (which we provide as live links on the CD-ROM that accompanies this book) to help you learn about Perl. These links include general information, tutorials and demonstrations.
We have worked hard to create hundreds of useful live-code examples to help you master Perl programming quickly and effectively. All of the code examples are on the accompanying disk and are available for free download from our Web sites:
The book's exercises range from simple recall questions to lengthy programming problems to major projects. Instructors requiring substantial term projects will find many appropriate problems listed in the exercises, especially in the later chapters. We have put a great deal of effort into the exercises to enhance the value of this book.
Perl How to Program contains a rich collection of examples and exercises that provide the student with a chance to solve interesting real-world problems. The book concentrates on the principles of good software engineering and stresses program clarity. We avoid arcane terminology and syntax specifications in favor of teaching by example. The book is written by educators who spend most of their time writing about and teaching edge-of-the-practice programming topics in industry classrooms worldwide for Deitel & Associates, Inc. The text emphasizes good pedagogy.
Live-CodeTM Teaching Approach
The book is loaded with hundreds of live-code examples. This is the focus of the way we teach and write about programming, and the focus of each of our multimedia Cyber Classrooms as well. Each new concept is presented in the context of a complete, working program immediately followed by one or more windows showing the program's input/output dialog. We call this style of teaching and writing our live-code approach. We use complete, working programs to teach programming languages. Reading these programs is much like entering and running them on a computer.
Perl How to Program explains cutting-edge technologies for building powerful Web-based applications. There is great stuff to be done in Perl, so let's get right to it! Web programming is not trivial by any means, but it is fun and students can see immediate results. Students can get graphical, database-intensive, network-based programs running quickly through "reusable components." They can implement impressive projects. They can be incredibly creative and productive in a one- or two-semester courses.
World Wide Web Access
All of the code for Perl How to Program (and our other publications) is on the CD that accompanies the book and on the Internet free for download at www.deitel.com and www.prenhall.com/deitel. Please run each program as you read the text. Make changes to the code examples and examine the effects of those changes. This is a great way to learn programming. Note: You must respect the fact that these programs are copyrighted material. Feel free to use them as you study, but you may not republish any portion of them in any form without explicit permission from Prentice Hall and the authors.
Each chapter begins with a statement of objectives. This tells the student what to expect and gives the student an opportunity, after reading the chapter, to determine if they have met these objectives. It is a confidence builder and a source of positive reinforcement.
The learning objectives are followed by a series of quotations. Some are humorous, some are philosophical and some offer interesting insights. Our students enjoy relating the quotations to the chapter material. You may appreciate some of the quotations more after reading the chapters.
The chapter outline helps the student approach the material in top-down fashion. This, too, helps students anticipate what is to come and set a comfortable and effective learning pace.
Each chapter is organized into small sections that address key Perl topics.
12922 Lines of Syntax-Highlighted Code in 271 Example Programs (with Outputs) We present Perl features in the context of complete, working programs; each program is immediately followed by a window containing the outputs produced when the program is runwe call this our live-code approach. This enables the student to confirm that the programs run as expected. Relating outputs back to the program statements that produce those outputs is an excellent way to learn and to reinforce concepts. Our programs exercise the diverse features of Pert. Reading the book carefully is much like entering and running these programs on a computer. The code is "syntax highlighted" with keywords appearing in the second color of the book, comments appearing in a lighter shade of that color and the rest of each program appearing in black. This makes it much easier to read the codestudents will especially appreciate the syntax highlighting when they read the many more substantial programs we present.
An abundance of colorized charts and line drawings is included. The discussions of control structures in Chapters 3 through 5 feature carefully drawn flowcharts. Note: We do not teach the use of flowcharting as a program development tool, but we do use a brief flowchart-oriented presentation to specify the precise operation of Perl's control structures. Chapter 20, "Data Structures," uses line drawings to illustrate the creation and maintenance of linked lists, queues, stacks and binary trees. The remainder of the book is abundantly illustrated.
324 Programming Tips
We have included seven design elements to help students focus on important aspects of program development, testing and debugging, performance and portability. We highlight hundreds of these tips in the form of Good Programming Practices, Common Programming Errors, Look-and-Feel Observations, Performance Tips, Portability Tips, Software Engineering Observations and Testing and Debugging Tips. These tips and practices represent the best we have been able to glean from almost six decades (combined) of programming and teaching experience. One of our studentsa mathematics majortold us recently that she feels this approach is somewhat like the highlighting of axioms, theorems and corollaries in mathematics books; it provides a basis on which to build good software.
Each chapter ends with additional pedagogical devices. We present an extensive, bullet-list-style Summary in every chapter. This helps the student review and reinforce key concepts. There is an average of 48 summary bullets per chapter.
We include a Terminology section with an alphabetized list of the important terms defined in the chapteragain, further reinforcement. There is an average of 84 terms per chapter.
614 Self-Review Exercises and Answers (Count Includes Separate Parts)
Extensive Self-Review Exercises and Answers to Self-Review Exercises are included for self study. This gives the student a chance to build confidence with the material and prepare to attempt the regular exercises.
210 Exercises (Count Includes Separate Parts)
Each chapter concludes with a set of exercises including simple recall of important terminology and concepts, writing individual program statements, writing small portions of functions and writing complete functions and programs. The large number of exercises enables instructors to tailor their courses to the unique needs of their audiences and to vary course assignments each semester. Instructors can use these exercises to form homework assignments, short quizzes and major examinations.
Instructor's Manual with Solutions to the Exercises
The solutions for the exercises are included on the Instructor's Resource CD and are available only to instructors through their Prentice Hall representatives. NOTE: Please do not write to us requesting the instructor's manual. Distribution of this publication is strictly limited to college professors teaching from the book. Instructors may obtain the solutions manual only from their regular Prentice Hall representatives. We regret that we cannot provide the solutions to professionals.
3500 Index Entries (Total of 4800 Counting Multiple References)
We have included an extensive Index at the back of the book. This helps the student find any term or concept by keyword. The Index is useful to people reading the book for the first time and is especially useful to practicing programmers who use the book as a reference. Most of the terms in the Terminology sections appear in the Index (along with many more index items from each chapter). Thus, the student can use the Index in conjunction with the Terminology sections to be sure they have covered the key material of each chapter.
An extensive bibliography of books, articles and online documentation is included to encourage further reading.
The CD-ROM at the end of this book contains a variety of software, including ActiveState ActivePerl 5.6. Perl 5.6.0, MySQL 3.223.x and Apache 1.3.12. The CD also contains the book's code examples and an HTML Web page with links to the Deitel & Associates, Inc. Web site, the Prentice Hall Web site and the many Web sites listed in the web resources section of the chapters. If you have access to the internet, the Web page on the CD can be loaded into your World Wide Web browser to give you quick access to all the resources.
If you have any questions about using this software, please read all the introductory documentation on the CD-ROM. Additional information is available at our Web site: www.deitel.com NOTE: We do not provide technical support for the software application programs. However, if you have any technical questions about the installation of the CD, please e-mail email@example.com. They will respond promptly.
We have worked hard to produce a textbook and ancillaries that we hope instructors and students will find valuable. We would like to thank ActiveState, Apache and MySQL AB for providing the products included on the CD-ROM in the back of this textbook. The following ancillary resources are available.
We have prepared an optional interactive, CD-ROM-based, software version of Perl How to Program called the Perl Multimedia Cyber Classroom. It is loaded with features for learning and reference. The Cyber Classroom is wrapped with the textbook at a discount in The Complete Perl Training Course. If you already have the book and would like to purchase the Perl Multimedia Cyber Classroom separately, please call 1-800-811-0912 and ask for ISBN# 0-13-089553-9.
The CD has an introduction with the authors overviewing the Cyber Classroom's features. The live-code examples in the textbook truly "come alive" in the Cyber Classroom. With many of the examples, you can simply click the lightning bolt icon and the program will be executed. You will immediately see the program's outputs. If you want to modify a program and see the effects of your changes, simply click the floppy-disk icon that causes the source code to be "lifted off' the CD and "dropped into" one of your own directories so that you can edit the program and try out your new version. Click the speaker icon for an audio that talks about the program and walks you through the code.
The Cyber Classroom also provides navigational aids including extensive hyperlinking. The Cyber Classroom remembers in a "history list" recent sections you have visited and allows you to move forward or backward in that history list. The thousands of index entries are hyperlinked to their text occurrences. You can key in a term using the "find" feature and the Cyber Classroom will locate occurrences of that term throughout the text. The Table of Contents entries are "hot," so clicking a chapter name takes you to that chapter.
Students like the solved problems from the textbook that are included with the Cyber Classroom. Studying and running these extra programs is a nice way for students to enhance their learning experience.
Students and professional users of our Cyber Classrooms tell us they like the interactivity and that the Cyber Classroom is an effective reference because of the extensive hyperlinking and other navigational features. We recently had an e-mail from a person who said that he lives "in the boonies" and cannot take a live course at a university, so the Cyber Classroom was a good solution to his educational needs.
Professors tell us that their students enjoy using the Cyber Classroom, spend more time on the course and master more of the material than in textbook-only courses. Also, the Cyber Classroom helps shrink line, outside professors' offices during office hours. We have also published the C++ Multimedia Cyber Classroom (3/e), the Visual Basic 6 Multimedia Cyber Classroom, the Java 2 Multimedia Cyber Classroom (3/e), the Internet and World Wide Web Programming Multimedia Cyber Classroom, e-Business and e-Commerce Multimedia Cyber Classroom and the XML Multimedia Cyber Classroom. Each of these Cyber Classrooms is available in a Complete Training Course boxed product that contains the corresponding How to Program Series textbook.