Techniques and tricks to master basic and advanced OO Perl for programmers who already have basic to intermediate skills in procedural Perl.
The most notable thing about Object Oriented Perl is Conway's excellent perspective on object-oriented concepts and how they are implemented in Perl. This book does a remarkable job of cutting through traditional jargon and illustrating how basic object-oriented design techniques are handled in Perl. (A useful appendix attests to the author's wide-ranging knowledge, with a comparison of Smalltalk, Eiffel, C++, and Java with Perl, including a summary of object-oriented syntax for each.) This book also features a truly excellent review of basic Perl syntax.
Throughout this text, the author shows you the basics of solid object design (illustrated using classes that model music CDs). Basic concepts like inheritance and polymorphism get thorough and clear coverage. The book also points out common mistakes and provides many tips for navigating the powerful and flexible (yet sometimes tricky) nuances of using Perl objects. For instance, Conway shows how to achieve true data encapsulation in Perl (which generally allows calls across modules) as well as its natural support for generic programming techniques.
He also pays special attention to popular object modules available from CPAN (like Class::MethodmakerK, which simplifies declaring classes) and discusses performance issues and the tradeoff between programming convenience and speed often faced by today's Perl developer. Advanced chapters cover a number of techniques for adding persistence and invoking methods using multiple dispatching.
Filled with syntactic tips and tricks, Object Oriented Perl is a sure bet for any programmer who wants to learn how to use Perl objects effectively. --Richard Dragan
Topics covered: Perl language review, CPAN, Perl objects, 'blessing' and inheritance, polymorphism, Class::Struct and Class::Methodmaker modules, Perl ties and closures, operator overloading, encapsulation, multiple dispatch, Class::Multimethods, coarse-grained and fine-grained object persistence techniques, performance issues.
The author has a very methodical way of introducing concepts and overall has done a very good job. What seems like easy flow as far as the reader is concerned was probably a lot of hard work on his part.
The wry humor in the book alone is worth the money.
I am still unable to take the plethora of my perl scripts and modularize them but that is not the author's fault.
Compare this book with " Learning Perl Objects, References & Modules By Randal L. Schwartz". This does a much better exposition.
For those like me who are forced to write Perl against their will, this book is a must-have. In contrast to some other Perl books out there, this one doesn't get into cutesy terminology like calling things 'spaceship operator' or similar uses of sloppy informal language.
I don't recall what caused me to buy this book; perhaps it was the only Perl OO book. I am so glad I did, because the amount of info that the author has put into this book is amazing. Not just that, it's the *choices* he made, of what to explain. He's picked all the pieces that the other books glossed over, and examined the missing pieces, so that I now understand the"why" behind many oddities, and I now can push myself much farther forward.
Sort of like, the other books pose the questions, this book answers them.
If you only buy 2 Perl books, make this one of them. Ignore the fact that the title says OO. Yes, it does a great job of explaining how the OO features mechanically work, but the reason to buy this book is all the extra backgrounder info that's in this, it's worth twice what they're asking for. The data often has nothing to do with the OO features, he's probably remembering all the details that HE had to go run down, and he's giving us all these data pearls (pun intended) for free, along with the payment for the OO data.
Don't buy this book to learn object-oriented programming, but if you want to learn how Perl manages to add OO features, and accidentally learn how Perl adds in a great many other features, then you're in the right place.
I consider the first two chapters ("What you need to know first" and "What you need to know second") to be well written and quite useful. These chapters effectively and succinctly expressed the non-OO aspect of Perl programming. When I delved excitedly into chapter three, however, it seemed to me that Damian Conway lost his interest in teaching Perl, in lieu of underlining his own mastery of the language. Too many times I recall his overly complicated one-liners getting in the way of a clear explanation of the point he was trying to convey. I bought Damian Conway's OO Perl because I wanted to learn more about object orientation in Perl-not to view obfuscated code. A *lot* more clarity would have the made the book much more useful.
A second frustrating point about the book is how Damian writes a given class, and then fails to provide even a simple example of how to use said class. As a programmer reading the book, I found it quite annoying that I had to so often write my own "class calling" scripts. Of the many classes contained in the contents of the book, I recall only one or two working examples of how to use said classes! This baffled me throughout the book. I kept wondering, "Are examples of how to use these classes available on a website or something?" Even as I write this review now, I'm shaking my head at the lack of examples provided in the book.
In my opinion, the most appropriate title for Damian Conway's book is "Obfuscated Object Oriented Perl.Read more ›
But you can't figure out the point of some of those perl features. Blind hashes? What are they for? And that 'bless' instruction? And typeglobs- huh? Maybe you're puzzled by that odd syntax some of the CPAN modules use- $class->export($var)? What's that all about?
Relax. You've just stumbled into the world of object-oriented perl programming. And it's not as hard as you may think. Conway does a wonderful job of explaining how OOP works. His examples are perfectly transparant, and perfectly obvious. And he shows how OOP construction can be summed up neatly in three simple rules.
There aren't a lot of prerequisites needed to make good use of this book. If you've got a basic familiarity with perl, and some basic experiece with programming, you're ready to dive in. Conway even gives you a review of the necessary perl essentials you'll need in chapters 2 and 3.
A first-rate book, and one destined to be a perl classic.