Synopses & Reviews
Popularly known as "the Llama," Learning Perl is the book most programmers rely on to get started with this versatile language. The bestselling Perl tutorial since it was first published in 1993, this sixth edition includes recent changes to the language up to Perl 5.14.
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 (including Unicode)
- 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
If you're just getting started with Perl, this is the book you want—whether you're a programmer, system administrator, or web hacker. Nicknamed "the Llama" by two generations of users, this bestseller closely follows the popular introductory Perl course taught by the authors since 1991. This 6th edition covers recent changes to the language up to version 5.14.
Perl is suitable for almost any task on almost any platform, from short fixes to complete web applications. Learning Perl teaches you the basics and shows you how to write programs up to 128 lines long—roughly the size of 90% of the Perl programs in use today. Each chapter includes exercises to help you practice what you've just learned. Other books may teach you to program in Perl, but this book will turn you into a Perl programmer.
Topics include:
- Perl data and variable types
- Subroutines
- File operations
- Regular expressions
- String manipulation (including Unicode)
- Lists and sorting
- Process management
- Smart matching
- Use of third party modules
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.
brian d foy is a prolific Perl trainer and writer, and runs The Perl Review to help people use and understand Perl through educational, consulting, code review, and more. He's a frequent speaker at Perl conferences. He's the co-author of Learning Perl, Intermediate Perl, and Effective Perl Programming, and the author of Mastering Perl. He was been an instructor and author for Stonehenge Consulting Services from 1998 to 2009, 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.
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.
Table of Contents
Preface; Typographical Conventions; Code Examples; Safari® Books Online; How to Contact Us; History of This Book; Changes from the Previous Edition; 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 Non-Scalar 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 Filehandles in a Scalar; 5.13 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 Match 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 Conditional 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 Exercises; 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 Using when with Many Items; 15.5 Exercises; Chapter 16: Process Management; 16.1 The system Function; 16.2 The Environment Variables; 16.3 The exec Function; 16.4 Using Backquotes to Capture Output; 16.5 External Processes with IPC::System::Simple; 16.6 Processes as Filehandles; 16.7 Getting Down and Dirty with Fork; 16.8 Sending and Receiving Signals; 16.9 Exercises; Chapter 17: Some Advanced Perl Techniques; 17.1 Slices; 17.2 Trapping Errors; 17.3 Picking Items from a List with grep; 17.4 Transforming Items from a List with map; 17.5 Fancier List Utilities; 17.6 Exercises; Exercise Answers; Answers to Chapter 1 Exercises; Answers to Chapter 2 Exercises; Answers to Chapter 3 Exercises; Answers to Chapter 4 Exercises; Answers to Chapter 5 Exercises; Answers to Chapter 6 Exercises; Answers to Chapter 7 Exercises; Answers to Chapter 8 Exercises; Answers to Chapter 9 Exercises; Answers to Chapter 10 Exercises; Answer to Chapter 11 Exercises; Answers to Chapter 12 Exercises; Answers to Chapter 13 Exercises; Answers to Chapter 14 Exercises; Answers to Chapter 15 Exercises; Answers to Chapter 16 Exercises; Answer to Chapter 17 Exercises; Beyond the Llama; Further Documentation; Regular Expressions; Packages; Extending Perl's Functionality; Databases; Other Operators and Functions; Mathematics; Lists and Arrays; Bits and Pieces; Formats; Networking and IPC; Security; Debugging; 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; Threads and Forking; Graphical User Interfaces (GUIs); And More...; A Unicode Primer; Unicode; UTF-8 and Friends; Getting Everyone to Agree; Fancy Characters; Dealing with Unicode in Perl; Further Reading; Colophon;