Foreword;Preface; Structure of This Book; Conventions Used in This Book; Using Code Examples; Comments and Questions; SafariĀ® Enabled; Acknowledgments;Chapter 1: Introduction; 1.1 What Should You Know Already?; 1.2 What About All Those Footnotes?; 1.3 What''s with the Exercises?; 1.4 What If I''m a Perl Course Instructor?;Chapter 2: Intermediate Foundations; 2.1 List Operators; 2.2 Trapping Errors with eval; 2.3 Dynamic Code with eval; 2.
4 Exercises;Chapter 3: Using Modules; 3.1 The Standard Distribution; 3.2 Using Modules; 3.3 Functional Interfaces; 3.4 Selecting What to Import; 3.5 Object-Oriented Interfaces; 3.6 A More Typical Object-Oriented Module: Math::BigInt; 3.7 The Comprehensive Perl Archive Network; 3.
8 Installing Modules from CPAN; 3.9 Setting the Path at the Right Time; 3.10 Exercises;Chapter 4: Introduction to References; 4.1 Performing the Same Task on Many Arrays; 4.2 Taking a Reference to an Array; 4.3 Dereferencing the Array Reference; 4.4 Getting Our Braces Off; 4.5 Modifying the Array; 4.
6 Nested Data Structures; 4.7 Simplifying Nested Element References with Arrows; 4.8 References to Hashes; 4.9 Exercises;Chapter 5: References and Scoping; 5.1 More Than One Reference to Data; 5.2 What If That Was the Name?; 5.3 Reference Counting and Nested Data Structures; 5.4 When Reference Counting Goes Bad; 5.
5 Creating an Anonymous Array Directly; 5.6 Creating an Anonymous Hash; 5.7 Autovivification; 5.8 Autovivification and Hashes; 5.9 Exercises;Chapter 6: Manipulating Complex Data Structures; 6.1 Using the Debugger to View Complex Data; 6.2 Viewing Complex Data with Data::Dumper; 6.3 YAML; 6.
4 Storing Complex Data with Storable; 6.5 Using the map and grep Operators; 6.6 Applying a Bit of Indirection; 6.7 Selecting and Altering Complex Data; 6.8 Exercises;Chapter 7: Subroutine References; 7.1 Referencing a Named Subroutine; 7.2 Anonymous Subroutines; 7.3 Callbacks; 7.
4 Closures; 7.5 Returning a Subroutine from a Subroutine; 7.6 Closure Variables as Inputs; 7.7 Closure Variables as Static Local Variables; 7.8 Exercise;Chapter 8: Filehandle References; 8.1 The Old Way; 8.2 The Improved Way; 8.3 The Even Better Way; 8.
4 IO::Handle; 8.5 Directory Handle References; 8.6 Exercises;Chapter 9: Practical Reference Tricks; 9.1 Review of Sorting; 9.2 Sorting with Indices; 9.3 Sorting Efficiently; 9.4 The Schwartzian Transform; 9.5 Multi-Level Sort with the Schwartzian Transform; 9.
6 Recursively Defined Data; 9.7 Building Recursively Defined Data; 9.8 Displaying Recursively Defined Data; 9.9 Exercises;Chapter 10: Building Larger Programs; 10.1 The Cure for the Common Code; 10.2 Inserting Code with eval; 10.3 Using do; 10.4 Using require; 10.
5 require and @INC; 10.6 The Problem of Namespace Collisions; 10.7 Packages as Namespace Separators; 10.8 Scope of a Package Directive; 10.9 Packages and Lexicals; 10.10 Exercises;Chapter 11: Introduction to Objects; 11.1 If We Could Talk to the Animals.; 11.
2 Introducing the Method Invocation Arrow; 11.3 The Extra Parameter of Method Invocation; 11.4 Calling a Second Method to Simplify Things; 11.5 A Few Notes About @ISA; 11.6 Overriding the Methods; 11.7 Starting the Search from a Different Place; 11.8 The SUPER Way of Doing Things; 11.9 What to Do with @_; 11.
10 Where We Are So Far.; 11.11 Exercises;Chapter 12: Objects with Data; 12.1 A Horse Is a Horse, of Course of Course--or Is It?; 12.2 Invoking an Instance Method; 12.3 Accessing the Instance Data; 12.4 How to Build a Horse; 12.5 Inheriting the Constructor; 12.
6 Making a Method Work with Either Classes or Instances; 12.7 Adding Parameters to a Method; 12.8 More Interesting Instances; 12.9 A Horse of a Different Color; 12.10 Getting Our Deposit Back; 12.11 Don''t Look Inside the Box; 12.12 Faster Getters and Setters; 12.13 Getters That Double as Setters; 12.
14 Restricting a Method to Class-Only or Instance-Only; 12.15 Exercise;Chapter 13: Object Destruction; 13.1 Cleaning Up After Yourself; 13.2 Nested Object Destruction; 13.3 Beating a Dead Horse; 13.4 Indirect Object Notation; 13.5 Additional Instance Variables in Subclasses; 13.6 Using Class Variables; 13.
7 Weakening the Argument; 13.8 Exercise;Chapter 14: Some Advanced Object Topics; 14.1 UNIVERSAL Methods; 14.2 Testing Our Objects for Good Behavior; 14.3 AUTOLOAD as a Last Resort; 14.4 Using AUTOLOAD for Accessors; 14.5 Creating Getters and Setters More Easily; 14.6 Multiple Inheritance; 14.
7 Exercises;Chapter 15: Exporter; 15.1 What use Is Doing; 15.2 Importing with Exporter; 15.3 @EXPORT and @EXPORT_OK; 15.4 %EXPORT_TAGS; 15.5 Exporting in a Primarily OO Module; 15.6 Custom Import Routines; 15.7 Exercises;Chapter 16: Writing a Distribution; 16.
1 There''s More Than One Way To Do It; 16.2 Using h2xs; 16.3 Embedded Documentation; 16.4 Controlling the Distribution with Makefile.PL; 16.5 Alternate Installation Locations (PREFIX=.); 16.6 Trivial make test; 16.
7 Trivial make install; 16.8 Trivial make dist; 16.9 Using the Alternate Library Location; 16.10 Exercise;Chapter 17: Essential Testing; 17.1 More Tests Mean Better Code; 17.2 A Simple Test Script; 17.3 The Art of Testing; 17.4 The Test Harness; 17.
5 Writing Tests with Test::More; 17.6 Testing Object-Oriented Features; 17.7 A Testing To-Do List; 17.8 Skipping Tests; 17.9 More Complex Tests (Multiple Test Scripts); 17.10 Exercise;Chapter 18: Advanced Testing; 18.1 Testing Large Strings; 18.2 Testing Files; 18.
3 Testing STDOUT or STDERR; 18.4 Using Mock Objects; 18.5 Testing POD; 18.6 Coverage Testing; 18.7 Writing Your Own Test::* Modules; 18.8 Exercises;Chapter 19: Contributing to CPAN; 19.1 The Comprehensive Perl Archive Network; 19.2 Getting Prepared; 19.
3 Preparing Your Distribution; 19.4 Uploading Your Distribution; 19.5 Announcing the Module; 19.6 Testing on Multiple Platforms; 19.7 Consider Writing an Article or Giving a Talk; 19.8 Exercise;Appendix A: Answers to Exercises; A.1 Answers for Chapter 2; A.2 Answers for Chapter 3; A.
3 Answers for Chapter 4; A.4 Answers for Chapter 5; A.5 Answers for Chapter 6; A.6 Answer for Chapter 7; A.7 Answers for Chapter 8; A.8 Answers for Chapter 9; A.9 Answers for Chapter 10; A.10 Answers for Chapter 11; A.
11 Answer for Chapter 12; A.12 Answer for Chapter 13; A.13 Answers for Chapter 14; A.14 Answers for Chapter 15; A.15 Answer for Chapter 16; A.16 Answer for Chapter 17; A.17 Answers for Chapter 18; A.18 Answer for Chapter 19;Colophon;.