Perl Best Practices and over 2 million other books are available for Amazon Kindle . Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
Buy Used
Used - Good See details
Price: 16.60

or
 
   
Trade in Yours
For a 3.52 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Start reading Perl Best Practices on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Perl Best Practices [Paperback]

Damian Conway
4.7 out of 5 stars  See all reviews (6 customer reviews)
Price: 25.99 & FREE Delivery in the UK. Details
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 3 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want it tomorrow, 2 Aug.? Choose Express delivery at checkout. Details
‹  Return to Product Overview

Table of Contents

Dedication; Preface; Contents of This Book; Conventions Used in This Book; Code Examples; Feedback; Acknowledgments; Chapter 1: Best Practices; 1.1 Three Goals; 1.2 This Book; 1.3 Rehabiting; Chapter 2: Code Layout; 2.1 Bracketing; 2.2 Keywords; 2.3 Subroutines and Variables; 2.4 Builtins; 2.5 Keys and Indices; 2.6 Operators; 2.7 Semicolons; 2.8 Commas; 2.9 Line Lengths; 2.10 Indentation; 2.11 Tabs; 2.12 Blocks; 2.13 Chunking; 2.14 Elses; 2.15 Vertical Alignment; 2.16 Breaking Long Lines; 2.17 Non-Terminal Expressions; 2.18 Breaking by Precedence; 2.19 Assignments; 2.20 Ternaries; 2.21 Lists; 2.22 Automated Layout; Chapter 3: Naming Conventions; 3.1 Identifiers; 3.2 Booleans; 3.3 Reference Variables; 3.4 Arrays and Hashes; 3.5 Underscores; 3.6 Capitalization; 3.7 Abbreviations; 3.8 Ambiguous Abbreviations; 3.9 Ambiguous Names; 3.10 Utility Subroutines; Chapter 4: Values and Expressions; 4.1 String Delimiters; 4.2 Empty Strings; 4.3 Single-Character Strings; 4.4 Escaped Characters; 4.5 Constants; 4.6 Leading Zeros; 4.7 Long Numbers; 4.8 Multiline Strings; 4.9 Here Documents; 4.10 Heredoc Indentation; 4.11 Heredoc Terminators; 4.12 Heredoc Quoters; 4.13 Barewords; 4.14 Fat Commas; 4.15 Thin Commas; 4.16 Low-Precedence Operators; 4.17 Lists; 4.18 List Membership; Chapter 5: Variables; 5.1 Lexical Variables; 5.2 Package Variables; 5.3 Localization; 5.4 Initialization; 5.5 Punctuation Variables; 5.6 Localizing Punctuation Variables; 5.7 Match Variables; 5.8 Dollar-Underscore; 5.9 Array Indices; 5.10 Slicing; 5.11 Slice Layout; 5.12 Slice Factoring; Chapter 6: Control Structures; 6.1 If Blocks; 6.2 Postfix Selectors; 6.3 Other Postfix Modifiers; 6.4 Negative Control Statements; 6.5 C-Style Loops; 6.6 Unnecessary Subscripting; 6.7 Necessary Subscripting; 6.8 Iterator Variables; 6.9 Non-Lexical Loop Iterators; 6.10 List Generation; 6.11 List Selections; 6.12 List Transformation; 6.13 Complex Mappings; 6.14 List Processing Side Effects; 6.15 Multipart Selections; 6.16 Value Switches; 6.17 Tabular Ternaries; 6.18 do-while Loops; 6.19 Linear Coding; 6.20 Distributed Control; 6.21 Redoing; 6.22 Loop Labels; Chapter 7: Documentation; 7.1 Types of Documentation; 7.2 Boilerplates; 7.3 Extended Boilerplates; 7.4 Location; 7.5 Contiguity; 7.6 Position; 7.7 Technical Documentation; 7.8 Comments; 7.9 Algorithmic Documentation; 7.10 Elucidating Documentation; 7.11 Defensive Documentation; 7.12 Indicative Documentation; 7.13 Discursive Documentation; 7.14 Proofreading; Chapter 8: Built-in Functions; 8.1 Sorting; 8.2 Reversing Lists; 8.3 Reversing Scalars; 8.4 Fixed-Width Data; 8.5 Separated Data; 8.6 Variable-Width Data; 8.7 String Evaluations; 8.8 Automating Sorts; 8.9 Substrings; 8.10 Hash Values; 8.11 Globbing; 8.12 Sleeping; 8.13 Mapping and Grepping; 8.14 Utilities; Chapter 9: Subroutines; 9.1 Call Syntax; 9.2 Homonyms; 9.3 Argument Lists; 9.4 Named Arguments; 9.5 Missing Arguments; 9.6 Default Argument Values; 9.7 Scalar Return Values; 9.8 Contextual Return Values; 9.9 Multi-Contextual Return Values; 9.10 Prototypes; 9.11 Implicit Returns; 9.12 Returning Failure; Chapter 10: I/O; 10.1 Filehandles; 10.2 Indirect Filehandles; 10.3 Localizing Filehandles; 10.4 Opening Cleanly; 10.5 Error Checking; 10.6 Cleanup; 10.7 Input Loops; 10.8 Line-Based Input; 10.9 Simple Slurping; 10.10 Power Slurping; 10.11 Standard Input; 10.12 Printing to Filehandles; 10.13 Simple Prompting; 10.14 Interactivity; 10.15 Power Prompting; 10.16 Progress Indicators; 10.17 Automatic Progress Indicators; 10.18 Autoflushing; Chapter 11: References; 11.1 Dereferencing; 11.2 Braced References; 11.3 Symbolic References; 11.4 Cyclic References; Chapter 12: Regular Expressions; 12.1 Extended Formatting; 12.2 Line Boundaries; 12.3 String Boundaries; 12.4 End of String; 12.5 Matching Anything; 12.6 Lazy Flags; 12.7 Brace Delimiters; 12.8 Other Delimiters; 12.9 Metacharacters; 12.10 Named Characters; 12.11 Properties; 12.12 Whitespace; 12.13 Unconstrained Repetitions; 12.14 Capturing Parentheses; 12.15 Captured Values; 12.16 Capture Variables; 12.17 Piecewise Matching; 12.18 Tabular Regexes; 12.19 Constructing Regexes; 12.20 Canned Regexes; 12.21 Alternations; 12.22 Factoring Alternations; 12.23 Backtracking; 12.24 String Comparisons; Chapter 13: Error Handling; 13.1 Exceptions; 13.2 Builtin Failures; 13.3 Contextual Failure; 13.4 Systemic Failure; 13.5 Recoverable Failure; 13.6 Reporting Failure; 13.7 Error Messages; 13.8 Documenting Errors; 13.9 OO Exceptions; 13.10 Volatile Error Messages; 13.11 Exception Hierarchies; 13.12 Processing Exceptions; 13.13 Exception Classes; 13.14 Unpacking Exceptions; Chapter 14: Command-Line Processing; 14.1 Command-Line Structure; 14.2 Command-Line Conventions; 14.3 Meta-options; 14.4 In-situ Arguments; 14.5 Command-Line Processing; 14.6 Interface Consistency; 14.7 Interapplication Consistency; Chapter 15: Objects; 15.1 Using OO; 15.2 Criteria; 15.3 Pseudohashes; 15.4 Restricted Hashes; 15.5 Encapsulation; 15.6 Constructors; 15.7 Cloning; 15.8 Destructors; 15.9 Methods; 15.10 Accessors; 15.11 Lvalue Accessors; 15.12 Indirect Objects; 15.13 Class Interfaces; 15.14 Operator Overloading; 15.15 Coercions; Chapter 16: Class Hierarchies; 16.1 Inheritance; 16.2 Objects; 16.3 Blessing Objects; 16.4 Constructor Arguments; 16.5 Base Class Initialization; 16.6 Construction and Destruction; 16.7 Automating Class Hierarchies; 16.8 Attribute Demolition; 16.9 Attribute Building; 16.10 Coercions; 16.11 Cumulative Methods; 16.12 Autoloading; Chapter 17: Modules; 17.1 Interfaces; 17.2 Refactoring; 17.3 Version Numbers; 17.4 Version Requirements; 17.5 Exporting; 17.6 Declarative Exporting; 17.7 Interface Variables; 17.8 Creating Modules; 17.9 The Standard Library; 17.10 CPAN; Chapter 18: Testing and Debugging; 18.1 Test Cases; 18.2 Modular Testing; 18.3 Test Suites; 18.4 Failure; 18.5 What to Test; 18.6 Debugging and Testing; 18.7 Strictures; 18.8 Warnings; 18.9 Correctness; 18.10 Overriding Strictures; 18.11 The Debugger; 18.12 Manual Debugging; 18.13 Semi-Automatic Debugging; Chapter 19: Miscellanea; 19.1 Revision Control; 19.2 Other Languages; 19.3 Configuration Files; 19.4 Formats; 19.5 Ties; 19.6 Cleverness; 19.7 Encapsulated Cleverness; 19.8 Benchmarking; 19.9 Memory; 19.10 Caching; 19.11 Memoization; 19.12 Caching for Optimization; 19.13 Profiling; 19.14 Enbugging; Essential Perl Best Practices; Perl Best Practices; , Code Layout; , Naming Conventions; , Values and Expressions; , Variables; , Control Structures; , Documentation; , Built-in Functions; , Subroutines; , I/O; , References; , Regular Expressions; , Error Handling; , Command-Line Processing; , Objects; , Class Hierarchies; , Modules; , Testing and Debugging; , Miscellanea; Editor Configurations; vim; vile; Emacs; BBEdit; TextWrangler; Recommended Modules and Utilities; Recommended Core Modules; Recommended CPAN Modules; Utility Subroutines; Bibliography; Perl Coding and Development Practices; General Coding and Development Practices; Colophon;

‹  Return to Product Overview