pauamma: Cartooney crab wearing hot pink and acid green facemask holding drink with straw (Default)
Res facta quae tamen fingi potuit ([personal profile] pauamma) wrote in [site community profile] dw_dev2011-05-15 05:44 pm
Entry tags:

Versions of perl

So Perl 5.14 was released today, and Perl 5.10 (and Perl 5.8) is no longer maintained. This raises the question: which version(s) of Perl should we allow, recommend, or use in development and production?
outlier_lynn: (Default)

[personal profile] outlier_lynn 2011-05-15 04:58 pm (UTC)(link)
Not that my opinion about Dreamwidth development should hold much sway, but I'll give it anyway.

In all my development work, I usually use the next to last "stable" release of everything unless there is a particular added feature that I really want to use. No matter how long something stays in beta, I tend to find the edge case bug in new versions of languages. I prefer to let other people find it first. :)
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)

[staff profile] denise 2011-05-15 05:05 pm (UTC)(link)
I say we spend some time testing things under 5.14 and see what breaks before we make any decisions. :)

(I believe our general policy should be to stop requiring versions that are no longer supported, but I know that perl upgrades can cause massive problems.)
cdybedahl: (Default)

[personal profile] cdybedahl 2011-05-16 07:25 am (UTC)(link)
(I don't know about Dreamwidth development, but I work as a Perl consultant, I give courses in it and I follow the Perl development).

Backwards compatibility is taken very seriously by the Perl developers. There are new features in 5.10, 5.12 and 5.14, but you have to specifically ask to have them activated before you can use them. In general, the most likely reason to get problems when going up to a newer Perl version is that you've accidentally relied on buggy behavior that got fixed, or that you're using a feature that got deprecated (one major version will warn before anything is removed, so only really a surprise if you jump several major versions in one go).

It is much more likely that you'll have problems when upgrading any external modules you rely on, but you'll probably run into that one even if you stay at an old Perl version.

My recommendation: If you just want a newer more-supported Perl version, aim for 5.12.3. I've moved two projects from 5.8.9 to 5.12.3, and it was very smooth both times. If significant work with non-latin alphabets and/or IPv6 is in your future plans, wait a couple of months and try 5.14.1 instead.