Re: What is Modern Perl?

Dave Cross reviewed Programming Perl for josetteorama. It’s no surprise to us that he likes the latest edition.

He spent most of his review distinguishing between different definitions of “modern Perl”. Most people use that term in conjunction with the module and book of the same name, which means they are programming in a particular fashion with a particular set of modules. The Camel book has never cared what you are doing though. It’s a reference for the Perl language, not a guide to Perl application development.

As Dave points out, “modern Perl” can also mean “up to date”. He says:

The Perl of 2012 is substantially different to the Perl of 2000.


The definitive Perl book is now up to date with the way that the best Perl programmers now program Perl.

That was always the plan. We talked about the other meaning of “modern Perl”, but fully realizing that “modern” isn’t the same thing as contemporary. “Modern history” started right after the Middle Ages. Indeed, much of “modern Perl” started in 1995 when we got Perl 5. The “modern Perl” movement isn’t so much about getting people to program with the stuff released today, but to get them to stop programming in the Perl 3 fashion. That’s what chromatic says on the back cover of Modern Perl:

[M]ost Perl 5 programs in the world take far too little advantage of the language. You can write Perl 5 programs as if they were Perl 4 programs (or Perl 3 or 2 or 1), but programs written to take advantage of everything amazing the worldwide Perl 5 community has invented…

“Modern Perl” is really Perl 5, and that’s evolving because Larry specifically created Perl 5 to be user extensible (and he went one further to make Perl 6 user-mutable). How we extended and used Perl 5 ten years ago is different than five years ago is different from today, and we fully expect that in five years we’ll be doing it in another way. However, the core language will be what it is, and that’s what Programming Perl is about.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>