Synopses & Reviews
Learning Perl, better known as the Llama book, starts the reader on the way to mastering this core programming topic. Written by three prominent members of the Perl community who each have several years of experience teaching Perl around the world, this latest edition has been updated to account for the recent changes to the language up to Perl 5.10. Perl is the language for people who want to get work done. It started as a tool for Unix system administrators who needed something powerful for small tasks. Since then, Perl has blossomed into a full-featured programming language used for web programming, database manipulation, XML processing, and system administration -- on practically all platforms -- while remaining the favorite tool for the small daily tasks for which it was originally designed. You might start using Perl because you need it, but you'll continue to use it because you love it. Informed by their years of success at teaching Perl as consultants, the authors wrote the Llama to match the pace and scope appropriate for readers getting started with Perl, while providing the detailed discussion, thorough examples, and eclectic wit for which the Llama is famous. The book includes exercises and solutions so you can practice what you've learned while it's still fresh in your mind. Here are just a few of the topics covered: Perl variable types Subroutines File operations Regular expressions Text processing Strings and sorting Process management Using third party modules If you ask Perl programmers today what book they relied on most when they were learning Perl, you'll find that an overwhelming majority will point to the Llama. With good reason. Other books may teach you toprogram in Perl, but this book will turn you into a Perl programmer.
Synopsis
Learning Perl, popularly known as "the Llama," is the book most programmers rely on to get started with Perl. The bestselling Perl tutorial since it was first published in 1993, this new fifth edition covers recent changes to the language up to Perl 5.10.
This book reflects the combined experience of its authors, who have taught Perl at Stonehenge Consulting since 1991. Years of classroom testing and experience helped shape the book's pace and scope, and this edition is packed with exercises that let you practice the concepts while you follow the text. Topics include:
- Perl data & variable types
- Subroutines
- File operations
- Regular expressions
- String manipulation
- Lists & sorting
- Process management
- Smart matching
- Using third party modules
Perl is the language for people who want to get work done. Originally targeted to sysadmins for heavy-duty text processing, Perl is now a full-featured programming language suitable for almost any task on almost any platform-from short fixes on the command line to web applications, bioinformatics, finance, and much more. Other books may teach you to program in Perl, but this book will turn you into a Perl programmer.
Synopsis
Ask Perl programmers what source they relied on most when learning the language, and a vast majority will point to this book. Written by recognized leaders in the Perl community, this fifth edition is updated for all changes to the language up to Perl 5.10. Now designed to meet the pace and scope sought by today's programmers, the book retains the detailed discussions, thorough examples, and eclectic wit that made it famous.
Video
About the Author
Randal L. Schwartz is a two-decade veteran of the software industry. He is skilled in software design, system administration, security, technical writing, and training. Randal has coauthored the "must-have" standards: Programming Perl, Learning Perl, Learning Perl for Win32 Systems, and Effective Perl Learning, and is a regular columnist for WebTechniques, PerformanceComputing, SysAdmin, and Linux magazines.
He is also a frequent contributor to the Perl newsgroups, and has moderated comp.lang.perl.announce since its inception. His offbeat humor and technical mastery have reached legendary proportions worldwide (but he probably started some of those legends himself). Randal's desire to give back to the Perl community inspired him to help create and provide initial funding for The Perl Institute. He is also a founding board member of the Perl Mongers (perl.org), the worldwide Perl grassroots advocacy organization. Since 1985, Randal has owned and operated Stonehenge Consulting Services, Inc. Randal can be reached for comment at
[email protected] or (503) 777-0095, and welcomes questions on Perl and other related topics.
Tom Phoenix has been working in the field of education since 1982. After more than thirteen years of dissections, explosions, work with interesting animals, and high-voltage sparks during his work at a science museum, he started teaching Perl classes for Stonehenge Consulting Services, where he's worked since 1996. Since then, he has traveled to many interesting locations, so you might see him soon at a Perl Mongers' meeting. When he has time, he answers questions on Usenet's comp.lang.perl.misc and comp.lang.perl.moderated newsgroups, and contributes to the development and usefulness of Perl. Besides his work with Perl, Perl hackers, and related topics, Tom spends his time on amateur cryptography and speaking Esperanto. His home is in Portland, Oregon.
brian d foy has been an instructor for Stonehenge Consulting Services since 1998, a Perl user since he was a physics graduate student, and a die-hard Mac user since he first owned a computer. He founded the first Perl user group, the New York Perl Mongers, as well as the Perl advocacy nonprofit Perl Mongers, Inc., which helped form more than 200 Perl user groups across the globe. He maintains the perlfaq portions of the core Perl documentation, several modules on CPAN, and some stand-alone scripts. He's the publisher of The Perl Review, a magazine devoted to Perl, and is a frequent speaker at conferences including the Perl Conference, Perl University, MarcusEvans BioInformatics '02, and YAPC. His writings on Perl appear in The O'Reilly Network, The Perl Journal, Dr. Dobbs, and The Perl Review, on use.perl.org, and in several Perl usenet groups.
Table of Contents
Preface; Typographical Conventions; How to Contact Us; Using Code Examples; Safari® Enabled; History of This Book; Acknowledgments; Chapter 1: Introduction; 1.1 Questions and Answers; 1.2 What Does "Perl" Stand For?; 1.3 How Can I Get Perl?; 1.4 How Do I Make a Perl Program?; 1.5 A Whirlwind Tour of Perl; 1.6 Exercises; Chapter 2: Scalar Data; 2.1 Numbers; 2.2 Strings; 2.3 Perl's Built-in Warnings; 2.4 Scalar Variables; 2.5 Output with print; 2.6 The if Control Structure; 2.7 Getting User Input; 2.8 The chomp Operator; 2.9 The while Control Structure; 2.10 The undef Value; 2.11 The defined Function; 2.12 Exercises; Chapter 3: Lists and Arrays; 3.1 Accessing Elements of an Array; 3.2 Special Array Indices; 3.3 List Literals; 3.4 List Assignment; 3.5 Interpolating Arrays into Strings; 3.6 The foreach Control Structure; 3.7 Scalar and List Context; 3.8
in List Context; 3.9 Exercises; Chapter 4: Subroutines; 4.1 Defining a Subroutine; 4.2 Invoking a Subroutine; 4.3 Return Values; 4.4 Arguments; 4.5 Private Variables in Subroutines; 4.6 Variable-Length Parameter Lists; 4.7 Notes on Lexical (my) Variables; 4.8 The use strict Pragma; 4.9 The return Operator; 4.10 Nonscalar Return Values; 4.11 Persistent, Private Variables; 4.12 Exercises; Chapter 5: Input and Output; 5.1 Input from Standard Input; 5.2 Input from the Diamond Operator; 5.3 The Invocation Arguments; 5.4 Output to Standard Output; 5.5 Formatted Output with printf; 5.6 Filehandles; 5.7 Opening a Filehandle; 5.8 Fatal Errors with die; 5.9 Using Filehandles; 5.10 Reopening a Standard Filehandle; 5.11 Output with say; 5.12 Exercises; Chapter 6: Hashes; 6.1 What Is a Hash?; 6.2 Hash Element Access; 6.3 Hash Functions; 6.4 Typical Use of a Hash; 6.5 The %ENV hash; 6.6 Exercises; Chapter 7: In the World of Regular Expressions; 7.1 What Are Regular Expressions?; 7.2 Using Simple Patterns; 7.3 Character Classes; 7.4 Exercises; Chapter 8: Matching with Regular Expressions; 8.1 Matches with m//; 8.2 Option Modifiers; 8.3 Anchors; 8.4 The Binding Operator, =~; 8.5 Interpolating into Patterns; 8.6 The Match Variables; 8.7 General Quantifiers; 8.8 Precedence; 8.9 A Pattern Test Program; 8.10 Exercises; Chapter 9: Processing Text with Regular Expressions; 9.1 Substitutions with s///; 9.2 The split Operator; 9.3 The join Function; 9.4 m// in List Context; 9.5 More Powerful Regular Expressions; 9.6 Exercises; Chapter 10: More Control Structures; 10.1 The unless Control Structure; 10.2 The until Control Structure; 10.3 Expression Modifiers; 10.4 The Naked Block Control Structure; 10.5 The elsif Clause; 10.6 Autoincrement and Autodecrement; 10.7 The for Control Structure; 10.8 Loop Controls; 10.9 The Ternary Operator, ?:; 10.10 Logical Operators; 10.11 Exercises; Chapter 11: Perl Modules; 11.1 Finding Modules; 11.2 Installing Modules; 11.3 Using Simple Modules; 11.4 Exercise; Chapter 12: File Tests; 12.1 File Test Operators; 12.2 The stat and lstat Functions; 12.3 The localtime Function; 12.4 Bitwise Operators; 12.5 Exercises; Chapter 13: Directory Operations; 13.1 Moving Around the Directory Tree; 13.2 Globbing; 13.3 An Alternate Syntax for Globbing; 13.4 Directory Handles; 13.5 Recursive Directory Listing; 13.6 Manipulating Files and Directories; 13.7 Removing Files; 13.8 Renaming Files; 13.9 Links and Files; 13.10 Making and Removing Directories; 13.11 Modifying Permissions; 13.12 Changing Ownership; 13.13 Changing Timestamps; 13.14 Exercises; Chapter 14: Strings and Sorting; 14.1 Finding a Substring with index; 14.2 Manipulating a Substring with substr; 14.3 Formatting Data with sprintf; 14.4 Advanced Sorting; 14.5 Exercises; Chapter 15: Smart Matching and given-when; 15.1 The Smart Match Operator; 15.2 Smart Match Precedence; 15.3 The given Statement; 15.4 when with Many Items; 15.5 Exercises; Chapter 16: Process Management; 16.1 The system Function; 16.2 The exec Function; 16.3 The Environment Variables; 16.4 Using Backquotes to Capture Output; 16.5 Processes as Filehandles; 16.6 Getting Down and Dirty with Fork; 16.7 Sending and Receiving Signals; 16.8 Exercises; Chapter 17: Some Advanced Perl Techniques; 17.1 Trapping Errors with eval; 17.2 Picking Items from a List with grep; 17.3 Transforming Items from a List with map; 17.4 Unquoted Hash Keys; 17.5 Slices; 17.6 Exercise; Exercise Answers; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answer to Exercise; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answers to Exercises; Answer to Exercise; Beyond the Llama; Further Documentation; Regular Expressions; Packages; Extending Perl's Functionality; Some Important Modules; Pragmas; Databases; Other Operators and Functions; Mathematics; Lists and Arrays; Bits and Pieces; Formats; Networking and IPC; Security; Debugging; The Common Gateway Interface (CGI); Command-Line Options; Built-in Variables; Syntax Extensions; References; Tied Variables; Operator Overloading; Dynamic Loading; Embedding; Converting Other Languages to Perl; Converting find Command Lines to Perl; Command-Line Options in Your Programs; Embedded Documentation; More Ways to Open Filehandles; Locales and Unicode; Threads and Forking; Graphical User Interfaces (GUIs); And More...; Colophon;