Perl Best Practices [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Best Practices [Electronic resources] - نسخه متنی

Damian Conway

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید

   

 Perl Best Practices 

 By
Table of Contents
 

       
Copyright 

       
Dedication 

       
Preface 

    
     
Contents of This Book 

    
     
Conventions Used in This Book 

    
     
Code Examples 

    
     
Feedback 

    
     
Acknowledgments 

       

Chapter 1.
Best Practices
 

    
     

Section 1.1.
Three Goals
 

    
     

Section 1.2.
This Book
 

    
     

Section 1.3.
Rehabiting
 

       

Chapter 2.
Code Layout
 

    
     

Section 2.1.
Bracketing
 

    
     

Section 2.2.
Keywords
 

    
     

Section 2.3.
Subroutines and Variables
 

    
     

Section 2.4.
Builtins
 

    
     

Section 2.5.
Keys and Indices
 

    
     

Section 2.6.
Operators
 

    
     

Section 2.7.
Semicolons
 

    
     

Section 2.8.
Commas
 

    
     

Section 2.9.
Line Lengths
 

    
     

Section 2.10.
Indentation
 

    
     

Section 2.11.
Tabs
 

    
     

Section 2.12.
Blocks
 

    
     

Section 2.13.
Chunking
 

    
     

Section 2.14.
Elses
 

    
     

Section 2.15.
Vertical Alignment
 

    
     

Section 2.16.
Breaking Long Lines
 

    
     

Section 2.17.
Non-Terminal Expressions
 

    
     

Section 2.18.
Breaking by Precedence
 

    
     

Section 2.19.
Assignments
 

    
     

Section 2.20.
Ternaries
 

    
     

Section 2.21.
Lists
 

    
     

Section 2.22.
Automated Layout
 

       

Chapter 3.
Naming Conventions
 

    
     

Section 3.1.
Identifiers
 

    
     

Section 3.2.
Booleans
 

    
     

Section 3.3.
Reference Variables
 

    
     

Section 3.4.
Arrays and Hashes
 

    
     

Section 3.5.
Underscores
 

    
     

Section 3.6.
Capitalization
 

    
     

Section 3.7.
Abbreviations
 

    
     

Section 3.8.
Ambiguous Abbreviations
 

    
     

Section 3.9.
Ambiguous Names
 

    
     

Section 3.10.
Utility Subroutines
 

       

Chapter 4.
Values and Expressions
 

    
     

Section 4.1.
String Delimiters
 

    
     

Section 4.2.
Empty Strings
 

    
     

Section 4.3.
Single-Character Strings
 

    
     

Section 4.4.
Escaped Characters
 

    
     

Section 4.5.
Constants
 

    
     

Section 4.6.
Leading Zeros
 

    
     

Section 4.7.
Long Numbers
 

    
     

Section 4.8.
Multiline Strings
 

    
     

Section 4.9.
Here Documents
 

    
     

Section 4.10.
Heredoc Indentation
 

    
     

Section 4.11.
Heredoc Terminators
 

    
     

Section 4.12.
Heredoc Quoters
 

    
     

Section 4.13.
Barewords
 

    
     

Section 4.14.
Fat Commas
 

    
     

Section 4.15.
Thin Commas
 

    
     

Section 4.16.
Low-Precedence Operators
 

    
     

Section 4.17.
Lists
 

    
     

Section 4.18.
List Membership
 

       

Chapter 5.
Variables
 

    
     

Section 5.1.
Lexical Variables
 

    
     

Section 5.2.
Package Variables
 

    
     

Section 5.3.
Localization
 

    
     

Section 5.4.
Initialization
 

    
     

Section 5.5.
Punctuation Variables
 

    
     

Section 5.6.
Localizing Punctuation Variables
 

    
     

Section 5.7.
Match Variables
 

    
     

Section 5.8.
Dollar-Underscore
 

    
     

Section 5.9.
Array Indices
 

    
     

Section 5.10.
Slicing
 

    
     

Section 5.11.
Slice Layout
 

    
     

Section 5.12.
Slice Factoring
 

       

Chapter 6.
Control Structures
 

    
     

Section 6.1.
If Blocks
 

    
     

Section 6.2.
Postfix Selectors
 

    
     

Section 6.3.
Other Postfix Modifiers
 

    
     

Section 6.4.
Negative Control Statements
 

    
     

Section 6.5.
C-Style Loops
 

    
     

Section 6.6.
Unnecessary Subscripting
 

    
     

Section 6.7.
Necessary Subscripting
 

    
     

Section 6.8.
Iterator Variables
 

    
     

Section 6.9.
Non-Lexical Loop Iterators
 

    
     

Section 6.10.
List Generation
 

    
     

Section 6.11.
List Selections
 

    
     

Section 6.12.
List Transformation
 

    
     

Section 6.13.
Complex Mappings
 

    
     

Section 6.14.
List Processing Side Effects
 

    
     

Section 6.15.
Multipart Selections
 

    
     

Section 6.16.
Value Switches
 

    
     

Section 6.17.
Tabular Ternaries
 

    
     

Section 6.18.
do-while Loops
 

    
     

Section 6.19.
Linear Coding
 

    
     

Section 6.20.
Distributed Control
 

    
     

Section 6.21.
Redoing
 

    
     

Section 6.22.
Loop Labels
 

       

Chapter 7.
Documentation
 

    
     

Section 7.1.
Types of Documentation
 

    
     

Section 7.2.
Boilerplates
 

    
     

Section 7.3.
Extended Boilerplates
 

    
     

Section 7.4.
Location
 

    
     

Section 7.5.
Contiguity
 

    
     

Section 7.6.
Position
 

    
     

Section 7.7.
Technical Documentation
 

    
     

Section 7.8.
Comments
 

    
     

Section 7.9.
Algorithmic Documentation
 

    
     

Section 7.10.
Elucidating Documentation
 

    
     

Section 7.11.
Defensive Documentation
 

    
     

Section 7.12.
Indicative Documentation
 

    
     

Section 7.13.
Discursive Documentation
 

    
     

Section 7.14.
Proofreading
 

       

Chapter 8.
Built-in Functions
 

    
     

Section 8.1.
Sorting
 

    
     

Section 8.2.
Reversing Lists
 

    
     

Section 8.3.
Reversing Scalars
 

    
     

Section 8.4.
Fixed-Width Data
 

    
     

Section 8.5.
Separated Data
 

    
     

Section 8.6.
Variable-Width Data
 

    
     

Section 8.7.
String Evaluations
 

    
     

Section 8.8.
Automating Sorts
 

    
     

Section 8.9.
Substrings
 

    
     

Section 8.10.
Hash Values
 

    
     

Section 8.11.
Globbing
 

    
     

Section 8.12.
Sleeping
 

    
     

Section 8.13.
Mapping and Grepping
 

    
     

Section 8.14.
Utilities
 

       

Chapter 9.
Subroutines
 

    
     

Section 9.1.
Call Syntax
 

    
     

Section 9.2.
Homonyms
 

    
     

Section 9.3.
Argument Lists
 

    
     

Section 9.4.
Named Arguments
 

    
     

Section 9.5.
Missing Arguments
 

    
     

Section 9.6.
Default Argument Values
 

    
     

Section 9.7.
Scalar Return Values
 

    
     

Section 9.8.
Contextual Return Values
 

    
     

Section 9.9.
Multi-Contextual Return Values
 

    
     

Section 9.10.
Prototypes
 

    
     

Section 9.11.
Implicit Returns
 

    
     

Section 9.12.
Returning Failure
 

       

Chapter 10.
I/O
 

    
     

Section 10.1.
Filehandles
 

    
     

Section 10.2.
Indirect Filehandles
 

    
     

Section 10.3.
Localizing Filehandles
 

    
     

Section 10.4.
Opening Cleanly
 

    
     

Section 10.5.
Error Checking
 

    
     

Section 10.6.
Cleanup
 

    
     

Section 10.7.
Input Loops
 

    
     

Section 10.8.
Line-Based Input
 

    
     

Section 10.9.
Simple Slurping
 

    
     

Section 10.10.
Power Slurping
 

    
     

Section 10.11.
Standard Input
 

    
     

Section 10.12.
Printing to Filehandles
 

    
     

Section 10.13.
Simple Prompting
 

    
     

Section 10.14.
Interactivity
 

    
     

Section 10.15.
Power Prompting
 

    
     

Section 10.16.
Progress Indicators
 

    
     

Section 10.17.
Automatic Progress Indicators
 

    
     

Section 10.18.
Autoflushing
 

       

Chapter 11.
References
 

    
     

Section 11.1.
Dereferencing
 

    
     

Section 11.2.
Braced References
 

    
     

Section 11.3.
Symbolic References
 

    
     

Section 11.4.
Cyclic References
 

       

Chapter 12.
Regular Expressions
 

    
     

Section 12.1.
Extended Formatting
 

    
     

Section 12.2.
Line Boundaries
 

    
     

Section 12.3.
String Boundaries
 

    
     

Section 12.4.
End of String
 

    
     

Section 12.5.
Matching Anything
 

    
     

Section 12.6.
Lazy Flags
 

    
     

Section 12.7.
Brace Delimiters
 

    
     

Section 12.8.
Other Delimiters
 

    
     

Section 12.9.
Metacharacters
 

    
     

Section 12.10.
Named Characters
 

    
     

Section 12.11.
Properties
 

    
     

Section 12.12.
Whitespace
 

    
     

Section 12.13.
Unconstrained Repetitions
 

    
     

Section 12.14.
Capturing Parentheses
 

    
     

Section 12.15.
Captured Values
 

    
     

Section 12.16.
Capture Variables
 

    
     

Section 12.17.
Piecewise Matching
 

    
     

Section 12.18.
Tabular Regexes
 

    
     

Section 12.19.
Constructing Regexes
 

    
     

Section 12.20.
Canned Regexes
 

    
     

Section 12.21.
Alternations
 

    
     

Section 12.22.
Factoring Alternations
 

    
     

Section 12.23.
Backtracking
 

    
     

Section 12.24.
String Comparisons
 

       

Chapter 13.
Error Handling
 

    
     

Section 13.1.
Exceptions
 

    
     

Section 13.2.
Builtin Failures
 

    
     

Section 13.3.
Contextual Failure
 

    
     

Section 13.4.
Systemic Failure
 

    
     

Section 13.5.
Recoverable Failure
 

    
     

Section 13.6.
Reporting Failure
 

    
     

Section 13.7.
Error Messages
 

    
     

Section 13.8.
Documenting Errors
 

    
     

Section 13.9.
OO Exceptions
 

    
     

Section 13.10.
Volatile Error Messages
 

    
     

Section 13.11.
Exception Hierarchies
 

    
     

Section 13.12.
Processing Exceptions
 

    
     

Section 13.13.
Exception Classes
 

    
     

Section 13.14.
Unpacking Exceptions
 

       

Chapter 14.
Command-Line Processing
 

    
     

Section 14.1.
Command-Line Structure
 

    
     

Section 14.2.
Command-Line Conventions
 

    
     

Section 14.3.
Meta-options
 

    
     

Section 14.4.
In-situ Arguments
 

    
     

Section 14.5.
Command-Line Processing
 

    
     

Section 14.6.
Interface Consistency
 

    
     

Section 14.7.
Interapplication Consistency
 

       

Chapter 15.
Objects
 

    
     

Section 15.1.
Using OO
 

    
     

Section 15.2.
Criteria
 

    
     

Section 15.3.
Pseudohashes
 

    
     

Section 15.4.
Restricted Hashes
 

    
     

Section 15.5.
Encapsulation
 

    
     

Section 15.6.
Constructors
 

    
     

Section 15.7.
Cloning
 

    
     

Section 15.8.
Destructors
 

    
     

Section 15.9.
Methods
 

    
     

Section 15.10.
Accessors
 

    
     

Section 15.11.
Lvalue Accessors
 

    
     

Section 15.12.
Indirect Objects
 

    
     

Section 15.13.
Class Interfaces
 

    
     

Section 15.14.
Operator Overloading
 

    
     

Section 15.15.
Coercions
 

       

Chapter 16.
Class Hierarchies
 

    
     

Section 16.1.
Inheritance
 

    
     

Section 16.2.
Objects
 

    
     

Section 16.3.
Blessing Objects
 

    
     

Section 16.4.
Constructor Arguments
 

    
     

Section 16.5.
Base Class Initialization
 

    
     

Section 16.6.
Construction and Destruction
 

    
     

Section 16.7.
Automating Class Hierarchies
 

    
     

Section 16.8.
Attribute Demolition
 

    
     

Section 16.9.
Attribute Building
 

    
     

Section 16.10.
Coercions
 

    
     

Section 16.11.
Cumulative Methods
 

    
     

Section 16.12.
Autoloading
 

       

Chapter 17.
Modules
 

    
     

Section 17.1.
Interfaces
 

    
     

Section 17.2.
Refactoring
 

    
     

Section 17.3.
Version Numbers
 

    
     

Section 17.4.
Version Requirements
 

    
     

Section 17.5.
Exporting
 

    
     

Section 17.6.
Declarative Exporting
 

    
     

Section 17.7.
Interface Variables
 

    
     

Section 17.8.
Creating Modules
 

    
     

Section 17.9.
The Standard Library
 

    
     

Section 17.10.
CPAN
 

       

Chapter 18.
Testing and Debugging
 

    
     

Section 18.1.
Test Cases
 

    
     

Section 18.2.
Modular Testing
 

    
     

Section 18.3.
Test Suites
 

    
     

Section 18.4.
Failure
 

    
     

Section 18.5.
What to Test
 

    
     

Section 18.6.
Debugging and Testing
 

    
     

Section 18.7.
Strictures
 

    
     

Section 18.8.
Warnings
 

    
     

Section 18.9.
Correctness
 

    
     

Section 18.10.
Overriding Strictures
 

    
     

Section 18.11.
The Debugger
 

    
     

Section 18.12.
Manual Debugging
 

    
     

Section 18.13.
Semi-Automatic Debugging
 

       

Chapter 19.
Miscellanea
 

    
     

Section 19.1.
Revision Control
 

    
     

Section 19.2.
Other Languages
 

    
     

Section 19.3.
Configuration Files
 

    
     

Section 19.4.
Formats
 

    
     

Section 19.5.
Ties
 

    
     

Section 19.6.
Cleverness
 

    
     

Section 19.7.
Encapsulated Cleverness
 

    
     

Section 19.8.
Benchmarking
 

    
     

Section 19.9.
Memory
 

    
     

Section 19.10.
Caching
 

    
     

Section 19.11.
Memoization
 

    
     

Section 19.12.
Caching for Optimization
 

    
     

Section 19.13.
Profiling
 

    
     

Section 19.14.
Enbugging
 

       

Appendix A.
Essential Perl Best Practices
 

       

Appendix B.
Perl Best Practices
 

    
     

Section B.1.
Chapter 2, Code Layout
 

    
     

Section B.2.
Chapter 3, Naming Conventions
 

    
     

Section B.3.
Chapter 4, Values and Expressions
 

    
     

Section B.4.
Chapter 5, Variables
 

    
     

Section B.5.
Chapter 6, Control Structures
 

    
     

Section B.6.
Chapter 7, Documentation
 

    
     

Section B.7.
Chapter 8, Built-in Functions
 

    
     

Section B.8.
Chapter 9, Subroutines
 

    
     

Section B.9.
Chapter 10, I/O
 

    
     

Section B.10.
Chapter 11, References
 

    
     

Section B.11.
Chapter 12, Regular Expressions
 

    
     

Section B.12.
Chapter 13, Error Handling
 

    
     

Section B.13.
Chapter 14, Command-Line Processing
 

    
     

Section B.14.
Chapter 15, Objects
 

    
     

Section B.15.
Chapter 16, Class Hierarchies
 

    
     

Section B.16.
Chapter 17, Modules
 

    
     

Section B.17.
Chapter 18, Testing and Debugging
 

    
     

Section B.18.
Chapter 19, Miscellanea
 

       

Appendix C.
Editor Configurations
 

    
     

Section C.1.
vim
 

    
     

Section C.2.
vile
 

    
     

Section C.3.
Emacs
 

    
     

Section C.4.
BBEdit
 

    
     

Section C.5.
TextWrangler
 

       

Appendix D.
Recommended Modules and Utilities
 

    
     

Section D.1.
Recommended Core Modules
 

    
     

Section D.2.
Recommended CPAN Modules
 

    
     

Section D.3.
Utility Subroutines
 

/ 317