Preface 1. Introduction Questions and Answers What Does "Perl" Stand For? How Can I Get Perl? How Do I Make a Perl Program? A Whirlwind Tour of Perl Exercises 2. Scalar Data Numbers Strings Perl's Built-in Warnings Scalar Variables Output with print The if Control Structure Getting User Input The chomp Operator The while Control Structure The undef Value The defined Function Exercises 3. Lists and Arrays Accessing Elements of an Array Special Array Indices List Literals List Assignment Interpolating Arrays into Strings The foreach Control Structure Scalar and List Context in List Context Exercises 4. Subroutines Defining a Subroutine Invoking a Subroutine Return Values Arguments Private Variables in Subroutines Variable-Length Parameter Lists Notes on Lexical (my) Variables The use strict Pragma The return Operator Non-Scalar Return Values Exercises 5. Input and Output Input from Standard Input Input from the Diamond Operator The Invocation Arguments Output to Standard Output Formatted Output with printf Filehandles Opening a Filehandle Fatal Errors with die Using Filehandles Reopening a Standard Filehandle Exercises 6. Hashes What Is a Hash? Hash Element Access Hash Functions Typical Use of a Hash Exercises 7. In the World of Regular Expressions What Are Regular Expressions? Using Simple Patterns Character Classes Exercises 8. Matching with Regular Expressions Matches with m// Option Modifiers Anchors The Binding Operator, =~ Interpolating into Patterns The Match Variables General Quantifiers Precedence A Pattern Test Program Exercises 9. Processing Text with Regular Expressions Substitutions with s/// The split Operator The join Function m// in List Context More Powerful Regular Expressions Exercises 10. More Control Structures The unless Control Structure The until Control Structure Expression Modifiers The Naked Block Control Structure The elsif Clause Autoincrement and Autodecrement The for Control Structure Loop Controls Logical Operators Exercise 11. File Tests File Test Operators The stat and lstat Functions The localtime Function Bitwise Operators Using the Special Underscore Filehandle Exercises 12. Directory Operations Moving Around the Directory Tree Globbing An Alternate Syntax for Globbing Directory Handles Recursive Directory Listing Manipulating Files and Directories Removing Files Renaming Files Links and Files Making and Removing Directories Modifying Permissions Changing Ownership Changing Timestamps Exercises 13. Strings and Sorting Finding a Substring with index Manipulating a Substring with substr Formatting Data with sprintf Advanced Sorting Exercises 14. Process Management The system Function The exec Function The Environment Variables Using Backquotes to Capture Output Processes as Filehandles Getting Down and Dirty with fork Sending and Receiving Signals Exercises 15. Perl Modules Finding Modules Installing Modules Using Simple Modules Exercise 16. Some Advanced Perl Techniques Trapping Errors with eval Picking Items from a List with grep Transforming Items from a List with map Unquoted Hash Keys Slices Exercise A. Exercise Answers B. Beyond the Llama Index
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 firstname.lastname@example.org 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.
"This book can be summed up as a solid introduction to Perl v5.8. There's no quick way to learn a language but finding time to work though this book will put you in good stead. Anyone past the basics of the language would be better off splashing out on "Perl Cookbook " or "Learning Perl". - Greg Matthews, news@UK, September 2005