| help | account  


Effective Perl Programming: Writing Better Programs with Perl
View Larger Image
Joseph N. Hall, Randal L. Schwartz
Addison-Wesley, Paperback, 4th edition, Published December 1997, 273 pages, ISBN 0201419750
List Price: $44.99
Our Price: $24.50
You Save: $20.49 (46% Off)


FREE Shipping on Orders over $40!*
Availability: Out-Of-Stock

Customer Reviews: 3     Average Customer Rating:

Write a Review and tell the world about this title!

People who purchase this book frequently purchase:

Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:

Powerful and flexible, Perl has established itself as a premier programming language, especially as a tool for World Wide Web development, text processing, and system administration. The language features full support for regular expressions, object-oriented modules, network programming, and process management. Perl is extensible and supports modular, cross-platform development.

In Effective Perl Programming, Perl experts Joseph Hall and Randal Schwartz share programming solutions, techniques, pointers, rules of thumb, and the pitfalls to avoid, enabling you to make the most of Perl's power and capabilities.

The authors will help you develop a knack for the right ways to do things. They show you how to solve problems with Perl and how to debug and improve your Perl programs. Offering examples, they help you learn good Perl style. Geared for programmers who have already acquired Perl basics, this book will extend your skill range, providing the tactics and deeper understanding you need to create Perl programs that are more elegant, effective, and succinct. This book also speaks to those who want to become more fluent, expressive, and individualistic Perl programmers.

To help you design and write real-world programs, Effective Perl Programming includes:

  • Perl basics
  • Idiomatic Perl
  • Regular expressions
  • Subroutines
  • References
  • Debugging
  • Usage of packages and modules
  • Object-oriented programming
  • Useful and interesting Perl miscellany

Numerous thought-provoking examples appear throughout the book, highlighting many of the subtleties that make Perl such a fascinating, fun, and powerful language to work with.



Author Bio

Joseph N. Hall is a software designer with interests in object-oriented languages, compilers, and graphical user interfaces. He teaches Perl and World Wide Web classes in association with Stonehenge Consulting, a leading provider of Perl Instruction.




Table of Contents

Foreword.
Preface.
Acknowledgements.
Introduction.
Basics.

Item 1: Know your namespaces.
Item 2: Avoid using a slice when you want an element.
Item 3: Don't assign undef when you want an empty list.
Item 4: String and numeric comparisons are different.
Item 5: Remember that 0 and “” are false.
Item 6: Understand conversions between strings and numbers.

Idiomatic Perl.
Item 7: Use $_ for elegance.
Item 8: Know the other default arguments: @_, @ARGV, STDIN.
Item 9: Know common shorthands and syntax quirks.
Item 10: Avoid excessive punctuation.
Item 11: Consider different ways of reading from a stream.
Item 12: Use foreach, map and grep as appropriate.
Item 13: Don't misquote.
Item 14: Learn the myriad ways of sorting.

Regular Expressions.
Item 15: Know the precedence of regular expression operators.
Item 16: Use regular expression memory.
Item 17: Avoid greed when parsimony is best.
Item 18: Remember that whitespace is not a word boundary.
Item 19: Use split for clarity, unpack for efficiency.
Item 20: Avoid using regular expressions for simple string operations.
Item 21: Make regular expressions readable.
Item 22: Make regular expressions efficient.

Subroutines.
Item 23: Understand the difference between my and local.
Item 24: Avoid using @_ directly - unless you have to.
Item 25: Use wantarray to write subroutines returning lists.
Item 26: Pass references instead of copies.
Item 27: Use hashes to pass named parameters.
Item 28: Use prototypes to get special argument parsing.
Item 29: Use subroutines to create other subroutines.

References.
Item 30: Understand references and reference syntax.
Item 31: Create lists of lists with references.
Item 32: Don't confuse anonymous arrays with list literals.
Item 33: Build C-style structs with anonymous hashes.
Item 34: Be careful with circular data structures.
Item 35: Use map and grep to manipulate complex data structures.

Debugging.
Item 36: Enable static and/or run-time checks.
Item 37: Use debugging and profiling modules.
Item 38: Learn to use a debugging version of Perl.
Item 39: Test things by using the debugger as a Perl shell.
Item 40: Don't debug too much at once.

Using Packages and Modules.
Item 41: Don't reinvent the wheel - use Perl modules.
Item 42: Understand packages and modules.
Item 43: Make sure Perl can find the modules you are using.
Item 44: Use perldoc to extract documentation for installed modules.

Writing Packages and Modules.
Item 45: Use h2xs to generate module boilerplate.
Item 46: Embed your documentation with POD.
Item 47: Use XS for low-level interfaces and/or speed.
Item 48: Submit your useful modules to the CPAN.

Object-Oriented Programming.
Item 49: Consider using Perl's object-oriented programming features.
Item 50: Understand method inheritance in Perl.
Item 51: Inherit data explicitly.
Item 52: Create invisible interfaces with tied variables.

Miscellany.
Item 53: Use pack and unpack for data munging.
Item 54: Know how and when to use eval, require, and do.
Item 55: Know when, and when not, to write networking code.
Item 56: Don't forget the file test operators.
Item 57: Access the symbol table with typeglobs.
Item 58: Use @{Š} or a tied hash to evaluate expressions inside strings.
Item 59: Initialize with BEGIN; finish with END.
Item 60: Some interesting Perl one-liners.

Appendix A: sprintf.
Appendix B: Perl Resources.
Index.


Customer Reviews

Customer Reviews: 3     Average Customer Rating:

May 8, 2002     Janardan Sapre from Springfield, VA
One of the most worth reading books on Perl.
This is a nice, concise, techy book about Perl. The tips and tricks and inner working explanations are superb. I read it mostly at bedtime ( ofcourse skipping the reg exp. chapter). Above all the treatment of the subject has made it very interesting reading ( not that I was not fascinated by Perl beforehand.). Also the book does a good job of pointing to CPAN and how to go about writing/submitting modules.

Dec 28, 2001     entius from catalunya
fantastic book
If you are starting, and you want to improve fast and to get the feeling you are knowing what you do in perl, this is your book. Cheap, small, condensed and good, very good.

If you are starting, but you want a full perl learning, this is not a good choice. There are deeper books out there that will bring you to a professional perl programer with more consistence, but with more time.

And at least, of course if you have money and you are not 'selecting' your book (you don't want only ONE book and you are not deciding among a lot), effective perl programming is one of the perl books you should have in your library. Because it's a very good reference, because if you read it you will improve, and because it's beautiful and makes your library a better one.

Sep 6, 1999     Nikolai Bezroukov (nnb@bellatlantic.net) from NJ
An excellent second book on Perl. Highly recommended
A useful intermediate to advanced level book on Perl. Explains a lot of idioms and pitfalls of the language. Highly recommended as a second book on Perl. I prefer it to the Cookbook, but you is involved with the language on daily basis you probably should think about buying both. The author cares about his book. The Joseph Hall's website http://www.effectiveperl.com/ contains some chapters in PDF format. I also like his growing Perl Recipes area. In general the quality of the web site distinguish this book from others even more.

Like Scott Meyers' Effective C++, on which it is modeled, Joseph Hall's Effective Perl Programming is not for the novices. In some way it demonstrates Perl design flaws. Text contain 60 topics (called items), grouped into 10 sections, that illuminate difficult parts of the language. For example assigning undef to an array creates an array with one element -- uninitialized arrays in Perl have value (), the empty list. Sometimes show useful idioms like ($i, $j)=($j, $i) for exchanging two elements. It also includes several tips on using the debugger effectively and submitting modules to the Comprehensive Perl Archive Network (http://www.perl.org/CPAN/).



Forgot your password?
FAQs
Shipping Options
Returns
Your Orders
Your Account