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 |