Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.
Intermediate Perl and over 300,000 other books are available for Amazon Kindle – Amazon’s new wireless reading device. Learn more

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
48 used & new from $19.21

Have one to sell? Sell yours here
 
   
Intermediate Perl
 
 
Start reading Intermediate Perl on your Kindle in under a minute.

Don’t have a Kindle? Get yours here.
 
  
4.5 out of 5 stars See all reviews (10 customer reviews)

List Price: $39.99
Price: $26.39 & this item ships for FREE with Super Saver Shipping. Details
You Save: $13.60 (34%)
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Thursday, July 16? Choose One-Day Shipping at checkout. Details
28 new from $21.88 20 used from $19.21
Also Available in: List Price: Our Price: Other Offers:
Kindle Edition (Kindle Book) $17.59
Like this book? Find similar titles from O'Reilly and Partners in our O'Reilly Bookstore.

Special Offers and Product Promotions


Best Value

Buy Learning Perl, 5th Edition and get Intermediate Perl at an additional 5% off Amazon.com's everyday low price.

Learning Perl, 5th Edition + Intermediate Perl
Buy Together Today: $51.46

Show availability and shipping details

  • Learning Perl, 5th Edition

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • This item: Intermediate Perl

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details


Customers Who Bought This Item Also Bought

Learning Perl, 5th Edition

Learning Perl, 5th Edition

by Randal Schwartz
4.2 out of 5 stars (296)  $26.39
Mastering Perl

Mastering Perl

by brian d foy
4.4 out of 5 stars (9)  $26.39
Perl Best Practices

Perl Best Practices

by Damian Conway
4.5 out of 5 stars (34)  $26.37
Programming Perl (3rd Edition)

Programming Perl (3rd Edition)

by Larry Wall
4.0 out of 5 stars (111)  $32.97
Perl Cookbook, Second Edition

Perl Cookbook, Second Edition

by Tom Christiansen
4.7 out of 5 stars (113)  $32.97
Explore similar items

Editorial Reviews

Product Description
Perl is a versatile, powerful programming language used in a variety of disciplines, ranging from system administration to web programming to database manipulation. One slogan of Perl is that it makes easy things easy and hard things possible. "Intermediate Perl" is about making the leap from the easy things to the hard ones.

Originally released in 2003 as "Learning Perl Objects, References, and Modules" and revised and updated for Perl 5.8, this book offers a gentle but thorough introduction to intermediate programming in Perl. Written by the authors of the best-selling "Learning Perl," it picks up where that book left off. Topics include:

Packages and namespaces

References and scoping

Manipulating complex data structures

Object-oriented programming

Writing and using modules

Testing Perl code

Contributing to CPAN

Following the successful format of "Learning Perl," we designed each chapter in the book to be small enough to be read in just an hour or two, ending with a series of exercises to help you practice what you've learned. To use the book, you just need to be familiar with the material in "Learning Perl" and have ambition to go further.

Perl is a different language to different people. It is a quick scripting tool for some, and a fully-featured object-oriented language for others. It is used for everything from performing quick global replacements on text files, to crunching huge, complex sets of scientific data that take weeks to process. Perl is what you make of it. But regardless of what you use Perl for, this book helps you do it more effectively, efficiently, and elegantly.

"Intermediate Perl" is about learning to use Perl as aprogramming language, and not just a scripting language. This is the book that turns the Perl dabbler into the Perl programmer.

About the Author
Randal L. Schwartz is a renowned expert on the Perl programming language. In addition to writing "Learning Perl" and the first two editions of "Programming Perl", he has been the Perl columnist for UNIX Review, Web Techniques, Sys Admin, and Linux Magazine. He has contributed to a dozen Perl books, and over 200 magazine articles. Randal runs a Perl training and consulting company (Stonehenge Consulting Services), and is highly sought-after as a speaker for his combination of technical skill, comedic timing, and crowd rapport. He's also a pretty good Karaoke singer.

brian d foy has been an instructor for Stonehenge Consulting Services since 1998. He founded the first Perl user group, the New York Perl Mongers, as well as the Perl advocacy nonprofit Perl Mongers, Inc., which helped form more than 200 Perl user groups across the globe. He maintains the perlfaq portions of the core Perl documentation, several modules on CPAN, and some stand-alone scripts. He's the publisher of The Perl Review and is a frequent speaker at conferences. His writings on Perl appear on The O'Reilly Network and use.perl.org, and in The Perl Journal, Dr. Dobbs Journal, and The Perl Review.

Tom Phoenix has been working in the field of education since 1982. After more than thirteen years of dissections, explosions, work with interesting animals, and high-voltage sparks during his work at a science museum, he started teaching Perl classes for Stonehenge Consulting Services, where he's worked since 1996. Since then, he has traveled to many interesting locations, so you might see him soon at a Perl Mongers' meeting. When he has time, he answers questions on Usenet's comp.lang.perl.misc and comp.lang.perl.moderated newsgroups, and contributes to the development and usefulness of Perl. Besides his work with Perl, Perl hackers, and related topics, Tom spends his time on amateur cryptography and speaking Esperanto. His home is in Portland, Oregon.


Product Details

  • Paperback: 278 pages
  • Publisher: O'Reilly Media, Inc.; 2nd edition (March 8, 2006)
  • Language: English
  • ISBN-10: 0596102062
  • ISBN-13: 978-0596102067
  • Product Dimensions: 9.1 x 6.9 x 0.7 inches
  • Shipping Weight: 13.6 ounces (View shipping rates and policies)
  • Average Customer Review: 4.5 out of 5 stars See all reviews (10 customer reviews)
  • Amazon.com Sales Rank: #20,540 in Books (See Bestsellers in Books)

    Popular in this category: (What's this?)

    #6 in  Books > Computers & Internet > Databases > Distributed Databases

Inside This Book (learn more)

What Do Customers Ultimately Buy After Viewing This Item?

Intermediate Perl
58% buy the item featured on this page:
Intermediate Perl 4.5 out of 5 stars (10)
$26.39
Learning Perl, 5th Edition
19% buy
Learning Perl, 5th Edition 4.2 out of 5 stars (296)
$26.39
Programming Perl (3rd Edition)
10% buy
Programming Perl (3rd Edition) 4.0 out of 5 stars (111)
$32.97
Perl Cookbook, Second Edition
9% buy
Perl Cookbook, Second Edition 4.7 out of 5 stars (113)
$32.97

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below.
(15)

Your tags: Add your first tag
 
Help others find this product — tag it for Amazon search
No one has tagged this product for Amazon search yet. Why not be the first to suggest a search for which it should appear?

 

Customer Reviews

10 Reviews
5 star:
 (5)
4 star:
 (5)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.5 out of 5 stars (10 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
66 of 71 people found the following review helpful:
4.0 out of 5 stars Three years later, Sailors upgrade Perl navigation software, April 4, 2006
By raul parolari (Daly City, Ca, Usa) - See all my reviews
(REAL NAME)   
This book updates the 2003 "Perl References, Objects & Modules" from the same authors, which described (in a humorous but also realistic way) a group of "Sailors" writing navigation software.

First, I summarize the major changes of the new version:
1) The description of the methodology to partition software has been extended, leading to 3 separate chapters (3, 10, 15). I must say that it is not very clear why they are scattered in that order. I personally concluded that they are best read sequentially and in this order: first Chapter 10, "Building Larger Programs" (where the Sailors start reusing software first via 'cut and paste', then come to sanity via eval/do/require and finally 'package'); then Chapter 2, "Using Modules" (the natural follow up to 'package'); finally Chapter 15, "Exporter". Read in this order, they are a comprehensive and excellent overview of this subject. In the order presented in the book, they are odd (why would the sailors, after learning to use Modules in chapter 3, start 'cut and paste' and 'eval files' to reuse software in chapter 10?).
2) A new chapter "Intermediate Foundations", with a good section reminding the differences between 'eval string' versus 'eval {block }'.
3) The Testing area is enhanced with a new chapter "Advanced Testing". Information on CPAN & distributions is updated in several chapters. Also, while the examples in the book are largely the same, code style is improved; for example, the chapter on grep/map uses the 'grep { filter } array' and 'map { transform } array' style, rather than the less clear ', Expr' style of the first edition.
In all, a better book (aside from the absurd chapter organization choice remarked above).

For the ones who have not read the 1st edition, the strongs points of the rest of the book are:
a) the chapters 5, 6 on Data Structure manipulations. The best is the way that anonymous arrays & hashes are presented, showing how they simplify the code of an example (as their introduction removes a jungle of temporary variables). Autovivification follows, with another excellent example (a "data reduction report generator").
b) chapter 7 "Subroutine References", identical to the first edition, one of the best chapters, introducing anonymous subroutines by continously refining an example, and then doing the same for "Closures". The only regret is that the final example on closures is a bit dull (as the "findFile" runs always to the end in one shot), obscuring the central capability of closures to keep each its context simultaneously (imagine an example that computes different Dna strands alternating between them, or, to stay with the book's theme, moves different boats from their initial position...). Still, for people (like me) coming from static languages, the chapter was an authentic gift.
c) chapter 9 "Reference Tricks", with a great presentation of sorting, the famous Schwartzian Transform, and the processing of recursively defined data.
d) finally, the chapters on Objects, and the Class Hierarchy. Remark the simple and effective presentation of Inheritance, used to factor out code common to some classes (without indulging in any of the mystical overtones that often accompany this OO subject).

The points where the book is less perfect:
-) Although the book wants to stop at the "Intermediate level", it could at least indicate to the reader subjects to be developed; for example, closures and mod_perl (problems with Cgi under 'registry'), need of caution with unwanted autovivifications (when testing for existence), etc. Role of lexicals vs local should also be better explained.
-) Chapter 4, on References, attacks the subject of (de)referencing nested data structures. The central problem (known to strike terror in Perl tests and interviews): why do we need to write @{ $x[0] } to retrieve the array referenced by the first element of array @x? Rather than ingenious rules on "when braces are needed" and "when they can be lifted", I think it would be best to tell the facts:

"Gentlemen: the dark secret here is that the sigils $, @, % bind more tightly than the [], {} and -> subscripts. This forces us to place braces around $x[0] in the previous example and write @{ $x[0] }. If instead we wrote @$x[0], Perl would try to retrieve a slice (element 0) of the array referenced by scalar $x (that was not our case). Got that? now, lets' be brave: what if we have a reference $ref to a list of lists and we want one of the far lists?
In this case, we must write @{ $ref->[$i] } to allow $ref to work undisturbed on the first list, and (only then!) collect the far list. To get a slice of the far list (say, elements $m and $n), just append [$m, $n] to the expression just written. If you have hashes instead of arrays, replace [] with {}, and all the rest is identical. END OF STORY".
Yes, the previous paragraph is not a cute fairy tale, and it requires some experimenting to be interiorized. But, once you do, isn't this inmensely simpler (6 lines!) to remember? Fairy tales are sweet but do not make you strong!

-) Also: why teach first ${$item}[1] and only later introduce the arrow notation $item->[1]? Invert the order: use the arrow notation (universally intuitive) to develop the examples, mentioning briefly (for masochists and obfuscators) the other notation.

In conclusion: in spite of its shortcomings and defects, this is a very useful book to progress in Perl, as its "progressive refining method" forces you to a constant mental gymnastic to reach every formulation (the opposite of the "cut and paste" culture).
One last note: after reading the chapters on Objects, it is interesting to plunge into D.Conway's "Perl Best Practices" (see my review), chapter 15 "Objects", to examine a different object implementation ("the inside-out objects"). Aside from the fascinating thesis exposed there, the fact that one can easily acquire 2 different perspectives on how to construct (internally) Objects in Perl, shows perhaps that this book allows the reader to begin moving beyond the "intermediate level".
Comment Comment (1) | Permalink | Was this review helpful to you? Yes No (Report this)



 
10 of 10 people found the following review helpful:
5.0 out of 5 stars Good sequel to Learning Perl, January 26, 2007
By calvinnme "Texan refugee" (Fredericksburg, Va) - See all my reviews
(TOP 10 REVIEWER)      
The first edition of this book was "Learning Perl Objects, References, and Modules". I never read that previous edition, so I can't comment on how that book stacks up against this new edition. This book is intended to pick up where Learning Perl left off. Its purpose is to show you how to use Perl to write larger more complex programs. As in Learning Perl, each chapter is small enough to read in an hour or so. Each chapter ends with a series of exercises to help you practice what you've just learned, and the answers are in the appendix for your reference. You don't have to know Unix to benefit from this book. Most everything in this book applies equally well to Windows ActivePerl from ActiveState and all other modern implementations of Perl. To use this book effectively, you just need to be familiar with the material in Learning Perl and have the ambition to go further. You should read this book from beginning to end, stopping to do the exercises as you go along. The following is the structure of the book:

Chapter 1, Introduction, just goes over what you should already know and how to use the book.

Chapter 2, Intermediate Foundations, introduces some intermediate-level Perl idioms used throughout the book. These are the things that typically set apart the beginning and intermediate Perl programmers.

Chapter 3, Using Modules, is about the building blocks for Perl programs. They provide reusable subroutines, variables, and even object-oriented classes. It also looks at the basics of using modules that others have already written.

Chapter 4 introduces references, which are the basis for complex data structures, object-oriented programming (OOP), and fancy subroutine magic. They're the magic that was added between Perl version 4 and version 5 to make it all possible. A Perl scalar variable holds a single value. An array holds an ordered list of one or more scalars. A hash holds a collection of scalars as values, keyed by other scalars. Although a scalar can be an arbitrary string, which allows complex data to be encoded into an array or hash, none of the three data types are well suited to complex data interrelationships. This is a job for the reference, which enables a level of redirection that allows the same code to operate on different sets of data.

Chapter 5, References and Scoping shows how to copy and pass around references like any other scalar. At any given time, Perl knows the number of references to a particular data item. Perl can also create references to anonymous data structures and create references automatically as needed to fulfill certain kinds of operations. This chapter look at copying references and how it affects scoping and memory usage.

Chapter 6, Manipulating Complex Data Structures, starts by using the debugger to examine complex data structures and then uses Data::Dumper to show the data under programmatic control. Next, you learn to store and retrieve complex data easily and quickly using Storable, and finally you wrap up with a review of grep and map and see how they apply to complex data.

Chapter 7, Subroutine References shows how to capture behavior as an anonymous subroutine that you create dynamically and execute later. In the same way that taking a reference to an array lets you have the same code work on different arrays at different times, taking a reference to a subroutine allows the same code to call different subroutines at different times. Also, references permit complex data structures. A reference to a subroutine allows a subroutine to effectively become part of that complex data structure

Chapter 8, Filehandle References, stores filehandles in scalar variables that you can easily pass around your program or store in data structures. You've seen arrays, hashes, and subroutines passed around in references, permitting a level of indirection to solve certain types of problems. We can also store filehandles in references to create new solutions to old problems.

Chapter 9, Practical Reference Tricks,looks at optimizing sorting and dealing with recursively defined data.

Chapter 10, Building Larger Programs, looks at how to break up a program into pieces and includes some of the concerns that arise when you put those pieces back together again, or when many people work together on the same program. You learn to build larger programs by separating code into separate files and namespaces.

Chapter 11, Introduction to Objects, shows how to work with classes, method calls, inheritance, and overriding.

Chapter 12, Objects with Data, shows how to add per-instance data, including constructors, getters, and setters.

Chapter 13, Object Destruction looks at an important topic: what happens when objects go away. When the last reference to a Perl data structure goes away, Perl automatically reclaims the memory of that data structure, including destroying any links to other data. Of course, that in turn may cause Perl to destroy other ("contained") structures as well.

Chapter 14, Some Advanced Object Topics, answers the questions "Do all objects inherit from a common class?" "What if a method is missing?" "What about multiple inheritance?" or "How can I tell what sort of object I have?" and other advanced questions pertaining to objects.

Chapter 15, Exporter, shows how to decide what to export and how to create your own import routines. In Chapter 3, you learned how to use modules, some of which pulled functions into the current namespace. Now you learn how to get your own modules to do that.

Chapter 16, Writing a Distribution, shows how to package a module for sharing, including portable installation instructions. In the previous chapter, you created a fictional Island::Plotting::Maps module and built the right support for Exporter so that we could include use Island::Plotting::Maps in a program. While the resulting .pm file was useful, it wasn't very practical. There is more work to do before you can share your work, whether that means simply installing it yourselves on another machine or giving it to someone else to use.

Chapter 17, Essential Testing, covers testing your code to ensure it does what you want it to do. As briefly described in Chapter 16, a distribution contains a testing facility that you can invoke from make test. This allows you to write and run tests during development and maintenance, and it also lets your end user verify that the module works in their environment. You should look at "Perl Testing: A Developer's Notebook" for in-depth coverage.

Chapter 18, Advanced Testing, gives you a taste of some of the more popular test modules. These modules are usually not part of the Perl standard distribution (unlike Test::More) and you'll need to install them yourself. You'll learn how to test complex aspects of code and also meta-code subjects such as documentation and test coverage.

Chapter 19, Contributing to CPAN, shows how you can contribute to the Perl community at large. The mechanism for sharing your work is called the Comprehensive Perl Archive Network (CPAN), which has thousands of different modules.

I found this book to be a seamless continuation of "Learning Perl". Everything is explained very well and there are plenty of examples. It really is ideal for self study. Having the answers at the back of the book was helpful, too. There are not just a bunch of pieces of code as answers, but good explanations as to how and why you would take a particular path in solving an exercise. Highly recommended, especially to the self-taught.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
8 of 8 people found the following review helpful:
5.0 out of 5 stars Good Book For Classroom Setting, February 19, 2007
I picked up this book for a class that I was teaching at my office. The goal of the class was to train HTML/CSS/JavaScript and/or Java programmers to code in Perl since a large portion of our code base is written in Perl. Overall, I think that the book was a good choice for the class for a number of reasons.

First of all, the book is already written with a classroom setting in mind. The authors have used previous versions of the book, titled "Learning Perl Objects, References and Modules", for their own courses. This updated version benefits from all of the hours of empirical testing that it has received in the classroom. There are many thoughtful additions like having all of the chapters close to the same size. This allowed for me to assign a single chapter per session and know that I could comfortably fit the lecture and discussion of the chapter into a two-hour session. There are also exercises at the end of each chapter and answers for those exercises (with discussion) in an appendix.

This book is good for getting people just learning the language ready for the TMTOWTDI/TIMTOWTDI aspect of Perl. Take something simple like opening files... there are at least four 'standard' ways to do it. The book prepares you for all of the different versions of annoyances/features like this that show up in Perl code by walking through the evolution of the feature.

Another reason that I like this selection of book is that data files and code examples are actually available for download. I've been shocked that some of the programming books that I've gotten lately actually don't have this addition.

Finally, the course that I'm teaching is for people who probably already know how to program, at least a little, but they don't know Perl. I didn't want to drag them through all of the picky details of the language by starting with "Learning Perl" or something equivalent. This book has been a good choice for introducing programmers to Perl. I do have to stop occasionally and explain some fundamentals of the language, but not too often... maybe I just work with smart (or shy) people :)

Of course, the book isn't perfect. As odd as it seems, one of the biggest complaints that I get is over the Gilligan references that are used in all of the examples in the book. There is also some coverage of packaging modules for CPAN. This is useful, just not for the particular class that I'm teaching, so we skipped that chapter. Of course, both of these complaints are pretty weak.

In short, this is a good book, especially if you are doing a training session about Perl.
Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

5.0 out of 5 stars Great reference to have on your bookshelf
This is a great reference book for Perl. Combine this with the Perl Cookbook and you have your tools to tackle your Perl coding tasks. Great book.
Published 3 months ago by John Hughes

4.0 out of 5 stars Intermediate Perl has good code, good examples
This book has good perl examples and good perl code. It is a good choice if you have an intermediate understanding of the perl language.
Published 21 months ago by Gary T. Eastwood

5.0 out of 5 stars A worthy (as expected) successor
Successors are not always as expected. In this case you do get from this trio of authors, who are classics in their own right, just what you expect. Read more
Published 21 months ago by Joseph B. Cohen

4.0 out of 5 stars Good follow up to the The Llama, but poorly organised
If you've mastered The Llama, make haste to read this one. Even if you only want to do scripting with Perl, you'll eventually find you need data structures slightly more... Read more
Published on July 14, 2007 by Thing with a hook

4.0 out of 5 stars Good, but not great
I didn't like the storyline, but I did learn how to handle anonymous arrays better.
Published on February 14, 2007 by C. E. Schaeffer

5.0 out of 5 stars Good step up for Perl programmers
For Perl programmers looking to make more of the language than just scripting this is the ideal 'step up' book. Object Oriented features of Perl are covered well. Read more
Published on July 19, 2006 by Jack D. Herrington

4.0 out of 5 stars Not As Good As Learning Perl
'Learning Perl' by the same authors is one of my favorite books of all time in in the O'Reilly family of books. Read more
Published on June 11, 2006 by Daniel McKinnon

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
New! See all customer communities, and bookmark your communities to keep track of them.
This product's forum (0 discussions)
  Discussion Replies Latest Post
  No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]


Active discussions in related forums
  Discussion Replies Latest Post
Textbooks for Kindle DX? 40 17 hours ago
Does anyone use Discovering Geometry: An Investigative Approach? 5 20 hours ago
C# or Java? 32 8 days ago
   


Product Information from the Amapedia Community

Beta (What's this?)


So You'd Like to...


Look for Similar Items by Category


Perfect Programming

Shop for programmable thermostats

Install a programmable thermostat to help reduce heating costs by ensuring your home is heated optimally. Shop for name-brand thermostats, including Honeywell and Lux, in Home Improvement.

Shop all programmable thermostats

 

Big Savings in Books

Bargain Books
Find great titles at fantastic prices in our Bargain Books Store.
 

Buy Three Books, Get a Fourth Free

4-for-3 Books
Order any four eligible books under $10 and get the lowest-price book free in our 4-for-3 Books Store. See more details.
 

Keep Up with the Seasons

Shop for Yard Equipment
Keep your yard looking its best in any season with outdoor power tools and gardening equipment from the Home Improvement Store.
 

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Where's My Stuff?

Shipping & Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue shopping: Top Sellers
Paranoia
Paranoia by Joseph Finder
$0.00
My Soul to Lose
My Soul to Lose by Rachel Vincent
Glenn Beck's Common Sense
Glenn Beck's Common Sense
Glenn Beck's Common Sense by Glenn Beck
$6.59

Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates