in reply to What is a really old version of Perl?

Personally I'd say if you're using anything older than 5.10.1, then you're a lost cause.

Some major new features were added in 5.10, including state, given/when, smart match and the defined-or operator. (Not to forget say, which although not major, is nice.) There were also important but less visible internal changes, such as to the regular expression engine. And there were some pretty big changes in the supposedly minor upgrade 5.10.1, including improvements to smart match, a Unicode upgrade, and autodie and parent becoming part of core.

Releases since 5.10 have had new features too, but these seem less compelling. Although I currently use 5.16, I have so far eschewed relying on post-5.10 features in publicly distributed code, preferring to keep compatibility with 5.10.

With regard to RHEL, it is well-known for shipping pretty ancient releases of software. Luckily, App::perlbrew will happily run on Perl 5.8.

PS: If the legal department object to installing a newer version of Perl via perlbrew, then it seems they would be unlikely to be thrilled about you downloading and executing random code from the monastery at all.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Replies are listed 'Best First'.
Re^2: What is a really old version of Perl? (you lost)
by tye (Sage) on Jun 26, 2012 at 02:45 UTC
    Personally I'd say if you're using anything older than 5.10.1, then you're a lost cause.

    Congratulations, you are officially a lost cause!

    You just used a release of Perl 5.008 to post that proclamation.

    I personally don't know how you guys keep posting nodes without state variables. Sheesh!

    - tye        

      My point is not that nobody should run 5.8, but rather than nobody should run 5.8 and expect to be able to download recently written code and have it "just work".

      Using a legacy version of Perl to run legacy code (and I understand it, there's a picture of the Perlmonks code if you look up "legacy code" in the dictionary) is clearly fine.

      Perl 5.8 first came into this world in 2002; the same year as Windows XP. The latest releases of Internet Explorer don't run on Windows XP. If one of the largest commercial software developers on the planet will not support products 10 years old that have had multiple stable releases since, then why should unpaid open source developers?

      perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

        Sure, but combine that with the oft-heard statement, "I don't program in perl, I program in CPAN."

        I only recently changed my CPAN packages from requiring perl 5.6 to requiring perl 5.8.3. Not because my code requires it, but because the Build/Make utilities are finally dropping support for pre-5.8 perls. (Note that I'm referring to the "requires" key in Build.PL or Makefile.PL, not in the module source itself.)

        Now for many, probably most, packages that goes back ridiculously far back, but I don't write OS- or WWW-specific packages, and I have no reason not to support as many people as possible.

        I suppose you could start a campaign to force people to upgrade their perls by using the requires keyword with perl => 5.16 (for example), but I frankly don't see the point. Set the minimum version to what's needed, and let the end-users sort it out.