Are the new Perl features worth anything?

Yes, the title is provocative. That's my idea. Now that I captured your attention, let me explain what's going on. I have a project, Quiki, that is requiring Perl 5.10. This because I use the given/when construct.

Meanwhile we received a bug report from Adam Kennedy asking to back port the project to Perl 5.8.8 because there are some Linux distributions that still use it. Note, I am not against this request from Adam. I totally understand it, and I am willing to help, back porting Quiki. But this makes me think. If Perl 5.10 is dated from December 2007, and we can't use its features yet, when will we be able to use Perl 5.12 features, or the new planned Perl 5.14 features?

Probably this means that we, as Linux users, should heavily complain for old releases. I suspect Adam was using CentOS. Probably we should make all CentOS Perl users fill in bug reports, and foruns, complaining of the old version of Perl that is shipping.


Its not a very good idea to compare 5.10 with 5.12, considering that happened with 5.10 and how long it took to get a regression-free 5.10.1 out from it. ( And then 5.12 hit soon after 5.10.1 )

A few distributions saw 5.10 and concluded it wasn't suitable yet for integrating, and they'd just wait for the 5.10.1 release, which they expected to come out a few weeks later.

A few weeks turned into a few months, and yeah, it took a long time to get 5.10.1 out. If you consider 5.10.1 as "the stable adoptable fast" rendition of 5.10, then a usable 5.10 hasn't really been out for even a year yet, expecting it to be 100% adopted by every distro in that sort of time frame is a bit insane =).

Sure, its becoming a lot more common place, and practically every every interesting distro now has 5.10.1 or greater at least available to install without requiring you to do much special.

But shipping stuff to people who are still on the previous cycle of distros who are held back having their system perl upgraded until their next OS release is produced/upgraded to, its them you're needing to unfortunately pander for. With a bit of luck, you'll see those distros who haven't got 5.10.1 yet possibly jumping straight to 5.12!

It might just be a fantasy on my part, but I think its a viable expectation =).

RHEL5 (on which CentOS is based) has been first released in March of 2007, half a year before 5.10. RedHat guarantees backward-compatibility for the whole 5.x series of RHEL so that their customers can have a stable platform for at least five years. Same goes for SuSE Enterprise, Ubuntu LTS and all the other enteprise distributions. It's not possible to make people upgrade at least until e.g. RHEL6 comes out (end of the year probably), probably until much later, since it's not easily possible to test everything they have already based on RHEL5 until then with the new version.

5.8 needs to be supported until most of the enterprise market moves to newer versions. Where I worked, even RHEL4 was still in use, so it takes some time. In a couple of years you probably can assume 5.10 as the default version, but it's definitely too early now.

BTW, same goes for Python 2.4 and other language runtimes.

"I have a project, Quiki"

Very interesting project. Glad to have found it.

Reading the project page:

"We feel the Perl community is lacking a simple yet powerful wiki. Something like DokuWiki"

I'm just wondering if you've ever looked at the Oddmuse wiki before? I've often considered it to be the Perl equivalent to something simple, yet full-featured, like DocuWiki. The installation and set-up is dead-simple, and the plug-in system is extensive and powerful.



I target 5.10.1 (and now 5.12) on my personal projects, that will be deployed as a final product internally.

For projects or modules that will be uploaded to CPAN, I target 5.8.5 and above (to get decent Unicode support).

It would be great to target 5.10 and 5.12 on CPAN modules, and some might require higher versions because they need a specific feature of a higher version. But apart from that, I don't use the new features.

My €.02

This would be a question to Adam I guess - but how about using local::lib and not depend on the system perl at all? Now that we have local::lib - and the wonderful perlbrew - do we still need to take into consideration what is the version of the system perl?

Don't read me wrong - these were not rhetorical questions - I really don't know.

Sounds to me like CentOS (or RHEL, more likely) should patch Quiki. I can't see how it's your responsibility.

Why not fallback to (conditionally include) Switch module in 'Perl6' compatibility mode?

It's a very tough call, but what benefit do you really gain from backporting? And what might you lose? Do you want to give up the option to use //, named regex captures, better Unicode support, using each on arrays (5.12), and all of the other goodies that newer versions of Perl might give you?

Of course, this is trading a concrete benefit for potential ones, so it's your call.

I think using modern features you will always have a subset of potential users locked out, but that subset will be reduced over time.

As for Quiki, how well does it work in pure CGI, since you have Email::Sender as a dependency of Quiki::Users?

Leave a comment

About Alberto Simões

user-pic I blog about Perl. D'uh!