It’s an exciting time to be a Perl programmer. Perl 6 was released at the end of 2015 and everyone who looks at it seems to be impressed by its power and flexibility. It might have been a long wait since the project was first announced in 2000, but it seems that all those years of work have finally paid off.
Perl 5 is still here too, of course. And it won’t be going anywhere for a very long time. Outside of the Perl community the fact that Perl has been sitting at the same version number for over twenty years seems to have confused some people into thinking that Perl 5 has stagnated — when actually nothing could be further from the truth. Perl 5 has a major release every year (the current version is 5.24) and those releases all include major improvements to the base language and the bundled library. The Perl of 2016 is a long way from the “CGI language” that many people drifted away from ten or fifteen years ago.
Of course, Perl was never a “CGI language” — it was always a flexible general purpose programming language that excelled in helping people to get their jobs done. I’ve been making most of my money from writing Perl for almost twenty years now. And I’ve probably spent less than half of that time working on web applications. The rest of the time I’ve been slicing and dicing data in various ways. Parsing data files and manipulating their contents so they can be stored in databases. Or pulling data out of those databases to present it to users in ways that help them drive their businesses.
Many of the improvements in Perl are tiny things that you find yourself using a dozen times a day. The “defined-or” operator from Perl 5.10. Or the “copy-before-replace” option on the substitution operator in Perl 5.14. Tiny things that make every program easier to write and (perhaps more importantly) easier to maintain.
CPAN gets better and better too. Did you give up on writing object oriented Perl because the syntax looked clunky and “bolted-on”? Have you looked at Moose, the modern object system for Perl? That makes writing powerful object oriented systems simple. And the resulting code is far easier to maintain. And we have DBIx::Class, one of the most flexible Object Relational Mapping systems around.
How important is testing to you? The Perl community has been committed to the idea of testing since before I was using Perl. The tools we have for writing units and interpreting test results are phenomenal. And, of course, they work seamlessly with industry-standard tools like Jenkins and Travis-CI.
But there’s no escaping the fact that web programming is still what most people think Perl is most suitable for. And it still does that too. PSGI/Plack is the standard that underlies most modern Perl tools. And with Catalyst, Dancer, Mojolicious and many other web frameworks to choose from you’re sure to find a framework that fits exactly how you want your web app to be written.
There’s a lot going on in the Perl world. But often these projects get talked about in parts of the internet that are only frequented by Perl programmers. And that’s what Cultured Perl is about. This is going to be a publication which publishes the best Perl articles out there in a space that fits right in with your existing blog-reading habits. If you want to know whats going on in the Perl world, just add Cultured Perl to your Medium subscriptions and let us introduce you to Modern Perl.