|  Preface | 
						
						
							 | 
							Perl or Perl? | 
						
						
							 | 
							Obtaining Perl | 
						
						
							 | 
							Historical Perl | 
						
						
							 | 
							Who This Book Is For | 
						
						
							 | 
							Typographical Conventions | 
						
						
							 | 
							For Further Reference | 
						
						
							 | 
							Perl Versions | 
						
						
							 | 
							Perl 6 | 
						
						
							 | 
							Acknowledgements | 
						
						
							| Chapter 1 | 
							 Introduction (First Reponse) | 
						
						
							| 1.1 | 
							First Things First | 
						
						
							| 1.2 | 
							Reasons for Inheritance | 
						
						
							| 1.3 | 
							What Next? | 
						
						
							| 1.4 | 
							Observe the Program in Its Natural Habitat | 
						
						
							| 1.5 | 
							Get Personal | 
						
						
							| 1.6 | 
							Strictness | 
						
						
							| 1.7 | 
							Warnings | 
						
						
							| Chapter 2 | 
							 Surveying the Scene | 
						
						
							| 2.1 | 
							 Versions | 
						
						
							| 2.2 | 
							 Part or Whole? | 
						
						
							| 2.3 | 
							Find the Dependenciess | 
						
						
							| Chapter 3 | 
							 Test Now, Test Forever (Diagnosis) | 
						
						
							| 3.1 | 
							 Testing Your Patience | 
						
						
							| 3.2 | 
							 Extreme Testing | 
						
						
							| 3.3 | 
							 An Example Using Test::Modules | 
						
						
							| 3.4 | 
							Testing Legacy Code | 
						
						
							| 3.5 | 
							 A Final Encouragement | 
						
						
							| Chapter 4 | 
							 | 
						
						
							| 4.1 | 
							 Strategizing | 
						
						
							| 4.2 | 
							 Why Are You Doing This? | 
						
						
							| 4.3 | 
							 Style | 
						
						
							| 4.4 | 
							 Comments | 
						
						
							| 4.5 | 
							 Restyling | 
						
						
							| 4.6 | 
							 Variable Renaming | 
						
						
							| 4.7 | 
							 Editing | 
						
						
							| 4.8 | 
							 Line Editing | 
						
						
							| 4.9 | 
							 Antipatterns | 
						
						
							| 4.10 | 
							 Evolution | 
						
						
							| Chapter 5 | 
							 The Disciplined Perl Program | 
						
						
							| 5.1 | 
							 Package Variables vs. Lexical Variables | 
						
						
							| 5.2 | 
							 Warnings and strictness | 
						
						
							| 5.3 | 
							 use strict in Detail | 
						
						
							| 5.4 | 
							 use warnings in Detail | 
						
						
							| 5.5 | 
							 Selective Disabling | 
						
						
							| 5.6 | 
							 Caveat Programmer | 
						
						
							| 5.7 | 
							 Perl Poetry | 
						
						
							| Chapter 6 | 
							 Restructuring (The Operating Table) | 
						
						
							| 6.1 | 
							 Keep It Brief | 
						
						
							| 6.2 | 
							Cargo Cult Perl | 
						
						
							| 6.3 | 
							Escaping the Global Variable Trap | 
						
						
							| 6.4 | 
							Debugging the Strategies | 
						
						
							| Chapter 7 | 
							Upgrading (Plastic Surgery) | 
						
						
							| 7.1 | 
							 Stragegies | 
						
						
							| 7.2 | 
							Perl 4 | 
						
						
							| 7.3 | 
							Perl 5.000 | 
						
						
							| 7.4 | 
							Perl 5.001 | 
						
						
							| 7.5 | 
							Perl 5.002 | 
						
						
							| 7.6 | 
							Perl 5.003 | 
						
						
							| 7.7 | 
							Perl 5.004 | 
						
						
							| 7.8 | 
							Perl 5.005 | 
						
						
							| 7.9 | 
							Perl 5.6.0 | 
						
						
							| 7.10 | 
							Perl 5.6.1 | 
						
						
							| 7.11 | 
							Perl 5.8.0 | 
						
						
							| 7.12 | 
							Perl 5.8.1 | 
						
						
							| 7.13 | 
							Perl 5.8.2 | 
						
						
							| 7.14 | 
							Perl 5.8.3 | 
						
						
							| Chapter 8 | 
							Using Modules (Genetic Enhancement) | 
						
						
							| 8.1 | 
							The Case for CPAN | 
						
						
							| 8.2 | 
							Using CPAN | 
						
						
							| 8.3 | 
							Improving Code with Modules | 
						
						
							| 8.4 | 
							Custom Perls | 
						
						
							| Chapter 9 | 
							Analysis (Forensic Pathology) | 
						
						
							| 9.1 | 
							Static Analysis | 
						
						
							| 9.2 | 
							Eliminating Superfluous Code | 
						
						
							| 9.3 | 
							Finding Inefficient Code | 
						
						
							| 9.4 | 
							Debugging | 
						
						
							| Chapter 10 | 
							Increasing Maintainability (Prophylaxis) | 
						
						
							| 10.1 | 
							Making it Robust | 
						
						
							| 10.2 | 
							Advanced Brevity | 
						
						
							| 10.3 | 
							Documentation | 
						
						
							| 10.4 | 
							Custom Warnings | 
						
						
							| 10.5 | 
							Version Control System Integration | 
						
						
							| Chapter 11 | 
							A Case Study | 
						
						
							| 11.1 | 
							The Setup | 
						
						
							| 11.2 | 
							Triage | 
						
						
							| 11.3 | 
							Desperately Seeking Sanity | 
						
						
							| 11.4 | 
							Coming into the 21st Century | 
						
						
							| 11.5 | 
							Incorporating Modules Effectively, Part 1 | 
						
						
							| 11.6 | 
							Incorporating Modules Effectively, Part 2 | 
						
						
							| 11.7 | 
							Making It Mature, Part 1 | 
						
						
							| 11.8 | 
							Making It Mature, Part 2 | 
						
						
							| 11.9 | 
							Making It Mature, Part 3 | 
						
						
							| 11.10 | 
							Advanced Modification | 
						
						
							| Chapter 12 | 
							 | 
						
						
							| 12.1 | 
							In Conclusion | 
						
						
							| 12.2 | 
							Perl People | 
						
						
							| 12.3 | 
							A Final Thought | 
						
						
							| Appendix: | 
							Source Code | 
						
						
							 | 
							Tie::Array::Bounded | 
						
						
							 | 
							Benchmark::TimeTick | 
						
						
							 | 
							smallprofpp | 
						
						
							 | 
							  | 
						
						
							| Bibliography | 
						
						
							| Index | 
						
						
							| About the Author | 
						
						
							| Top of Table of Contents | Perl Medic Website |