http://www.perlmonks.org?node_id=1073545


in reply to Re^5: Make $^V and "my" implicit
in thread Make $^V and "my" implicit

There now is a "consensus" of what the minimum version of perl is to be supported for the major modules on CPAN (amongst which is DBI). The consensus today is 5.8.1, with an option to move to 5.8.4 when the need arises.

The fact that a new version of any of those important modules starts using a new(er) feature that will require a newer version of perl does NOT mean that the previous version of the module suddenly stops working.

The module authors are very well aware of OS's that stick to old(er) versions of perl, but sometimes it is hard to stick to cruft to make a module build on those old platforms or OS's. A reason might be that a compiler is buggy. That buggy compiler also does not get updated/upgraded on that old system, so why would you update a perl module that behaves well?.

Once you update the OS, you also probably get a newer version of perl and your problem is gone. If you don't use system perl, nothing is stopping you installing a newer version of perl alongside the system perl.

As most modules have public repositories nowadays, nothing is stopping you to backport bugfixes that affect you to the now unsupported ancient environment.

I for sure do NOT foresee a sharp decline when module authors start declaring 5.8.4 as a minimum.


Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re^7: Make $^V and "my" implicit
by tobyink (Canon) on Feb 07, 2014 at 21:27 UTC

    "There now is a "consensus" of what the minimum version of perl is to be supported for the major modules on CPAN (amongst which is DBI). The consensus today is 5.8.1, with an option to move to 5.8.4 when the need arises."

    Not really. There is a consensus that the toolchain will support 5.8.1 with the option to move to 5.8.4. The toolchain is the set of modules that are needed to be able to find, download, and install other modules from CPAN - for example, ExtUtils::MakeMaker, Module::Build, Test::Harness, etc.

    This is not all "the major modules on CPAN". DBI is not considered to be a toolchain module - however, it does currently support Perl 5.8.1.

    There are certainly major modules that do not support 5.8.1. Moose is an obvious one; it requires 5.8.3. Catalyst also requires 5.8.3.

    use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name

      All (big) modules depend on (part of) the toolchain, so the consensus implies what I said.


      Enjoy, Have FUN! H.Merijn

        That's exactly what I said. All modules depend on the toolchain. That's why it's called the toolchain. The consensus that the toolchain will support 5.8.1 does not imply that other modules must. (They may however have difficulty supporting Perl versions older than 5.8.1, because their install scripts will rely on the toolchain. However, if you write your install scripts carefully, people on, say, Perl 5.6 can make do by installing older versions of key toolchain modules.)

        use Moops; class Cow :rw { has name => (default => 'Ermintrude') }; say Cow->new->name
Re^7: Make $^V and "my" implicit
by FloydATC (Deacon) on Feb 05, 2014 at 12:39 UTC

    You obviously have to draw the line somewhere and you mention perfectly valid reasons for abandoning an old platform. I don't expect newer modules to compile on my last surviving CentOS 4 box. (Running Oracle 9 for three old databases that won't run on anything else, good luck with installing that on a newer platform...)

    In my opinion, this is a completely different from a developer simply wanting to use new and fancy features that don't exist on the majority of the servers where the language is in widespread use.

    None of this is new ofcourse. Imagine where Windows could have been if MS hadn't bothered with backwards compatibility. It would probably have been 1/3 of the size, an order of magnitude faster, and installed on perhaps as many as 200 computers world-wide.

    -- FloydATC

    Time flies when you don't know what you're doing