Learning Perl, 8th Edition, covering up to Perl v5.34, should be available in August. In the previous post I outlined some of the updates, although back then we though v5.32 would be the last version in the Perl 5 range.
It’s now available for pre-order on Amazon. Amazon has an initial price that’s a bit high, but I expect that to come down (the same thing happened for my last book). You will also be able to read it through Safari Online.
I expect to add a few additional exercises to Learning Perl Exercises some of the new material, but that book is still good for this edition. The chapter order has not changed so everything still lines up.
O’Reilly Media is going ahead with Learning Perl, 8th Edition to cover v5.32, and to be perhaps the last edition of the title if Perl 7 works out (which you can read about in Preparing for Perl 7 from PerlSchool). This would be the fifth iteration of Tom Phoenix’s original vision that become the third edition. After this edition, I think a completely new text might be in order. That’s a way off though. (However, a summer later, it looks like Perl 7 isn’t happening).
O’Reilly also wants to add some notes, where appropriate, about possible ways to do things for Perl 7. Since Perl 7 is basically v5.32 with different defaults, that’s not that hard.
Some things of I want to update, along with any minor things I might need to change. Nothing major, and some of these I might decide are a bad idea at this level:
Debuggex can turn PCRE regular expressions into railroad diagrams. It’s missing several advanced Perl features, but it’s good for the basic patterns you’ll create in Learning Perl:
Marek Rouchal wrote to me with an interesting addendum to my previous post Who makes it into @INC first?. Besides the different ways to add directories, some of them also load additional subdirectories that you don’t specify.
Continue reading “Bonus @INC directories”
Perl finds modules by looking through the list of directories in
@INC. There are many ways to add paths to that array, and although I’ve used all of them at some point, I’ve never quite thought about what happens when I use all of them together.
Remember that Perl uses the first matching module name it finds then
stops looking. It does not have a designed way to determine a best match and newest match or anything fancy. Whatever it finds first is the winner. This also means that someone could add paths to
@INC and force your program to run their version of a module, even maliciously. This is something I write about in the “Secure Programming Techniques” chapter of Mastering Perl.
Continue reading “Who makes it into @INC first?”