Pre-order Learning Perl 8th Edition

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.

Learning Perl, 8th Edition

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:

Who makes it into @INC first?

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?”