Home   FAQs   New Arrivals   Specials   Pricing & Shipping   Location   Corporate Services  
 Search:   
 View Cart   Check Out   
 
Browse by Subject
I.T
 .NET 3.5
 Windows 2000/XP
 Cisco
 Java
 Office XP
 VB
 ASP
 UML
 Web Design
 E-Commerce
 Project Management
 Macintosh
 Linux
 Windows Server 2008
 Sharepoint 2007
Certification
 MCITP
 MCTS
Economics and Business
 Accounting
 Business Information Systems
 Economics
 Finance
 Management
 Marketing
 Human Resources
 OneKey Textbooks

Perl Best Practices

by: Damian Conway

On-line Price: $68.00 (includes GST)

Paperback package 542

20%Off Retail Price

You save: $17.00

In Stock - Available for immediate delivery!
_____________________
N.Sydney : In Stock

Retail Price: $85.00

Publisher: O'REILLY,25.7.2005

Category: PERL Level: I/A

ISBN: 0596001738
ISBN13: 9780596001735

Add to Shopping Cart

Many programmers code by instinct, relying on convenient habits or a
'style' they picked up early on. They aren't conscious of all the
choices they make, like how they format their source, the names they use
for variables, or the kinds of loops they use. They're focused entirely
on problems they're solving, solutions they're creating, and algorithms
they're implementing. So they write code in the way that seems natural,
that happens intuitively, and that feels good.

But if you're serious about your profession, intuition isn't enough.
Perl Best Practices author Damian Conway explains that rules,
conventions, standards, and practices not only help programmers
communicate and coordinate with one another, they also provide a
reliable framework for thinking about problems, and a common language
for expressing solutions. This is especially critical in Perl, because
the language is designed to offer many ways to accomplish the same task,
and consequently it supports many incompatible dialects.

With a good dose of Aussie humor, Dr. Conway (familiar to many in the
Perl community) offers 256 guidelines on the art of coding to help you
write better Perl code--in fact, the best Perl code you possibly can.
The guidelines cover code layout, naming conventions, choice of data and
control structures, program decomposition, interface design and
implementation, modularity, object orientation, error handling, testing,
and debugging.

They're designed to work together to produce code that is clear, robust,
efficient, maintainable, and concise, but Dr. Conway doesn't pretend
that this is the one true universal and unequivocal set of best
practices. Instead, Perl Best Practices offers coherent and widely
applicable suggestions based on real-world experience of how code is
actually written, rather than on someone's ivory-tower theories on how
software ought to be created.

Most of all, Perl Best Practices offers guidelines that actually work,
and that many developers around the world are already using. Much like
Perl itself, these guidelines are about helping you to get your job
done, without getting in the way.

Praise for Perl Best Practices from Perl community members:

'As a manager of a large Perl project, I'd ensure that every member of my team has a copy of Perl Best Practices on their desk, and use it as the basis for an in-house style guide.' -- Randal Schwartz

'There are no more excuses for writing bad Perl programs. All levels of Perl programmer will be more productive after reading this book.' -- Peter Scott

'Perl Best Practices will be the next big important book in the evolution of Perl. The ideas and practices Damian lays down will help bring Perl out from under the embarrassing heading of 'scripting languages'. Many of us have known Perl is a real programming language, worthy of all the tasks normally delegated to Java and C++. With Perl Best Practices, Damian shows specifically how and why, so everyone else can see, too.' -- Andy Lester

'Damian's done what many thought impossible: show how to build large, maintainable Perl applications, while still letting Perl be the powerful, expressive language that programmers have loved for years.' -- Bill Odom

'Finally, a means to bring lasting order to the process and product of real Perl development teams.' -- Andrew Sundstrom

'Perl Best Practices provides a valuable education in how to write robust, maintainable Perl, and is a definitive citation source when coaching other programmers.' -- Bennett Todd

'I've been teaching Perl for years, and find the same question keeps being asked: Where can I find a reference for writing reusable, maintainable Perl code? Finally I have a decent answer.' -- Paul Fenwick

'At last a well researched, well thought-out, comprehensive guide to Perl style. Instead of each of us developing our own, we can learn good practices from one of Perl's most prolific and experienced authors. I recommend this book to anyone who prefers getting on with the job rather than going back and fixing errors caused by syntax and poor style issues.' -- Jacinta Richardson

'If you care about programming in any language read this book. Even if you don't intend to follow all of the practices, thinking through your style will improve it.' -- Steven Lembark

'The Perl community's best author is back with another outstanding book. There has never been a comprehensive reference on high quality Perl coding and style until Perl Best Practices. This book fills a large gap in every Perl bookshelf.' -- Uri Guttman

Table of Contents

Preface
1. Best Practices


      Three Goals


      This Book


      Rehabiting
2. Code Layout


      Bracketing


      Keywords


      Subroutines and Variables


      Builtins


      Keys and Indices


      Operators


      Semicolons


      Commas


      Line Lengths


      Indentation


      Tabs


      Blocks


      Chunking


      Elses


      Vertical Alignment


      Breaking Long Lines


      Non-Terminal Expressions


      Breaking by Precedence


      Assignments


      Ternaries


      Lists


      Automated Layout
3. Naming Conventions


      Identifiers


      Booleans


      Reference Variables


      Arrays and Hashes


      Underscores


      Capitalization


      Abbreviations


      Ambiguous Abbreviations


      Ambiguous Names


      Utility Subroutines
4. Values and Expressions


      String Delimiters


      Empty Strings


      Single-Character Strings


      Escaped Characters


      Constants


      Leading Zeros


      Long Numbers


      Multiline Strings


      Here Documents


      Heredoc Indentation


      Heredoc Terminators


      Heredoc Quoters


      Barewords


      Fat Commas


      Thin Commas


      Low-Precedence Operators


      Lists


      List Membership
5. Variables


      Lexical Variables


      Package Variables


      Localization


      Initialization


      Punctuation Variables


      Localizing Punctuation Variables


      Match Variables


      Dollar-Underscore


      Array Indices


      Slicing


      Slice Layout


      Slice Factoring
6. Control Structures


      If Blocks


      Postfix Selectors


      Other Postfix Modifiers


      Negative Control Statements


      C-Style Loops


      Unnecessary Subscripting


      Necessary Subscripting


      Iterator Variables


      Non-Lexical Loop Iterators


      List Generation


      List Selections


      List Transformation


      Complex Mappings


      List Processing Side Effects


      Multipart Selections


      Value Switches


      Tabular Ternaries


      do-while Loops


      Linear Coding


      Distributed Control


      Redoing


      Loop Labels
7. Documentation


      Types of Documentation


      Boilerplates


      Extended Boilerplates


      Location


      Contiguity


      Position


      Technical Documentation


      Comments


      Algorithmic Documentation


      Elucidating Documentation


      Defensive Documentation


      Indicative Documentation


      Discursive Documentation


      Proofreading
8. Built-in Functions


      Sorting


      Reversing Lists


      Reversing Scalars


      Fixed-Width Data


      Separated Data


      Variable-Width Data


      String Evaluations


      Automating Sorts


      Substrings


      Hash Values


      Globbing


      Sleeping


      Mapping and Grepping


      Utilities
9. Subroutines


      Call Syntax


      Homonyms


      Argument Lists


      Named Arguments


      Missing Arguments


      Default Argument Values


      Scalar Return Values


      Contextual Return Values


      Multi-Contextual Return Values


      Prototypes


      Implicit Returns


      Returning Failure
10. I/O


      Filehandles


      Indirect Filehandles


      Localizing Filehandles


      Opening Cleanly


      Error Checking


      Cleanup


      Input Loops


      Line-Based Input


      Simple Slurping


      Power Slurping


      Standard Input


      Printing to Filehandles


      Simple Prompting


      Interactivity


      Power Prompting


      Progress Indicators


      Automatic Progress Indicators


      Autoflushing
11. References


      Dereferencing


      Braced References


      Symbolic References


      Cyclic References
12. Regular Expressions


      Extended Formatting


      Line Boundaries


      String Boundaries


      End of String


      Matching Anything


      Lazy Flags


      Brace Delimiters


      Other Delimiters


      Metacharacters


      Named Characters


      Properties


      Whitespace


      Unconstrained Repetitions


      Capturing Parentheses


      Captured Values


      Capture Variables


      Piecewise Matching


      Tabular Regexes


      Constructing Regexes


      Canned Regexes


      Alternations


      Factoring Alternations


      Backtracking


      String Comparisons
13. Error Handling


      Exceptions


      Builtin Failures


      Contextual Failure


      Systemic Failure


      Recoverable Failure


      Reporting Failure


      Error Messages


      Documenting Errors


      OO Exceptions


      Volatile Error Messages


      Exception Hierarchies


      Processing Exceptions


      Exception Classes


      Unpacking Exceptions
14. Command-Line Processing


      Command-Line Structure


      Command-Line Conventions


      Meta-options


      In-situ Arguments


      Command-Line Processing


      Interface Consistency


      Interapplication Consistency
15. Objects


      Using OO


      Criteria


      Pseudohashes


      Restricted Hashes


      Encapsulation


      Constructors


      Cloning


      Destructors


      Methods


      Accessors


      Lvalue Accessors


      Indirect Objects


      Class Interfaces


      Operator Overloading


      Coercions
16. Class Hierarchies


      Inheritance


      Objects


      Blessing Objects


      Constructor Arguments


      Base Class Initialization


      Construction and Destruction


      Automating Class Hierarchies


      Attribute Demolition


      Attribute Building


      Coercions


      Cumulative Methods


      Autoloading
17. Modules


      Interfaces


      Refactoring


      Version Numbers


      Version Requirements


      Exporting


      Declarative Exporting


      Interface Variables


      Creating Modules


      The Standard Library


      CPAN
18. Testing and Debugging


      Test Cases


      Modular Testing


      Test Suites


      Failure


      What to Test


      Debugging and Testing


      Strictures


      Warnings


      Correctness


      Overriding Strictures


      The Debugger


      Manual Debugging


      Semi-Automatic Debugging
19. Miscellanea


      Revision Control


      Other Languages


      Configuration Files


      Formats


      Ties


      Cleverness


      Encapsulated Cleverness


      Benchmarking


      Memory


      Caching


      Memoization


      Caching for Optimization


      Profiling


      Enbugging
A. Essential Perl Best Practices
B. Perl Best Practices
C. Editor Configurations
D. Recommended Modules and Utilities
E. Bibliography
Index