
Programmers who already have basic to intermediate skills in procedural Perl and understand fundamental concepts of object orientation will get a solid understanding of basic and advanced object-oriented Perl. This book clarifies when, where and why to use Perl. Featuring many techniques and tricks, it presents solutions to common programming problem and explains how to combine Perl and C++.
So much power! And right in line with Perl’s mantra, “there’s more than one way to do it.”
Unfortunately, our codebase contained more than one way of doing it. Different parts of the code used different, incompatible object systems. It was a lot of extra work to learn them all and make them work with each other.
It was a relief to later move to a language which only supported a single flavor of object-oriented programming.
1. Advanced Programming in the UNIX Environment[0]
This changed writing software from being about the code I was writing to being about the underlying systems my code was interacting with. My favorite little feature I learned about was the ability to pass open filehandles between processes (not threads, but processes), which I later used for open connection caching in Usenet systems.
2. Object Oriented Perl[1]
The mind-bending part of this book for me was when Conway explains about using structures other than hashes (dicts) as Perl objects. Arrays were interesting, scalars slightly more so, but then functions ... as objects. This one chapter brought clarity to functional programming that I never got from any other explanation.
All the other books listed here are on the list two, but these were two books about specific mechanics of software development that were worth so much more outside of their respective languages.
(edited to add links)
[0] https://www.pearson.com/store/p/advanced-programming-in-the-... [1] https://www.manning.com/books/object-oriented-perl
Sure:
I already mentioned
Mark Jason Dominus: "Higher-Order Perl"
as it is a great introduction of functional programming and goes into all the gory details of how to implement lazy evaluation on top of closures.
Damian Conway: "Object Oriented Perl"
Comes to my mind as well. It's basically an introduction to object oriented programming so kind of similar in spirit to "Higher-Order Perl". It even talks about implementation techniques of OO protocols. Neat stuff.
These books are great even today as they transcend the Perl language.
A little outdated but still great to read are:
Randal L. Schwartz "Learning Perl"
Randal L. Schwartz "Intermediate Perl"
Brian D Foy "Mastering Perl" (my personal favorite in this series)
if you need to learn Perl 5 today.
I personally also liked
Tom Christiansen, Nathan Torkington: "Perl Cookbook"
which was basically just a large collection of programming solution recipes but usually also contained elaborate discussions on the various pros and cons of the corresponding solutions. I think it was in this book I first learned about the Fisher–Yates shuffle algorithm.
Brian D Foy: "Learning Perl 6" is a great book about Raku and is a more recent example of the great heritage of high quality introductory books about programming in the Perl domain.
And speaking of Damian Conway, who was mentioned in this thread as a possible heir-apparent, he is brilliant. I bought and read an intermediate Perl book by him. Some really good stuff in there. Forget the name of the book now, but it should be possible to find it by a web search. It might have been Object-oriented Perl.
https://en.wikipedia.org/wiki/Damian_Conway
[1] That was a kind of mild good-humored jab at him, BTW, the kind of thing that he does a lot in his talks and writings :)
Once you've gotten through OReilly's beginner Perl books and "Programming Perl", if you truly want to learn how to scale Perl in the enterprise, read Damian Conway's Object Oriented Perl. Once you can write solid consistent OO Perl, read "Apache modules with Perl and C".
2. The Art of Agile Development (First agile book to read, certainly interesting)
3. Object Oriented Perl (Very interesting stuff... I've read it a few times but keep flipping open to chapters and being in awe of the cleverness of the author)
