Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re^2: Arguements for upgrading from Perl 5.8

by dlarochelle (Sexton)
on Nov 18, 2011 at 00:49 UTC ( #938718=note: print w/replies, xml ) Need Help??

in reply to Re: Arguements for upgrading from Perl 5.8
in thread Arguements for upgrading from Perl 5.8

The project is still being developed with me as the primary coder. My sense was that a new version of Perl would make me more productive and allow for a cleaner code base. I use modules by switch and say but there's no way to replicate other features such as '//='

Of course, it's hard that quantify benefits like that. It's true that there's a one time cost to upgrading and that it would be possible to continue development with 5.8. On the other hand, just because a technology works doesn't mean it's optimal to continue using it. For example, Perl 4 could also be used for a project but Perl 5 clearly results in better productivity and higher quality code.

  • Comment on Re^2: Arguements for upgrading from Perl 5.8

Replies are listed 'Best First'.
Re^3: Arguements for upgrading from Perl 5.8
by Tux (Abbot) on Nov 18, 2011 at 07:05 UTC

    If Unicode is a vital part of your project, specifying just "5.8" is not enough. I really cannot think of any application running code to deal with Unicode reliable on anything older than 5.8.4. In the (way too) long development life-cycle of 5.8.x Unicode support has hugely improved, so 5.8.8 will do MUCH better than 5.8.5. This trend set on in subsequent releases, and if Unicode is core business, moving towards 5.14.2 is a very healthy move. The jump is big though, and you will have to test everything very carefully.

    Using modules like Switch is a VERY bad idea in 5.8, especially when you plan to use defined-or in 5.10 and on. They do not combine and scripts will crash in unexpected ways. I always used perl 5.8.x with defined-or (//=) built-in ( yes, there is a patch available to make 5.8.x have // natively), so I hit that problem in early stages and decided to never use Switch ever again.

    Then came given/when, but it was based on smart-match, which has its own snakepit of unpredictable issues.

    Summarizing: a move from earlier 5.8 to later 5.8 is warranted by 64bit issues and a little bit of Unicode. A move to 5.10 is warranted by the defined-or being available by default and much better CPAN support: authors are dropping 5.6 by the masses and 5.8 will be dropped rather sooner than later. A move towards 5.12 or 5.14 is good if your Unicode processes are core business.

    Enjoy, Have FUN! H.Merijn

      The system is actually running 5.8.8 rather than just 5.8.0.

      Still Unicode support is important and if versions after 5.8.X have significantly better Unicode support that would itself be a huge reason to upgrade.

        Other than just way much better and more efficient and reliable Unicode support in the most recent version, also the supported Unicode standard was followed:

        Perl Unicode release version --------- ------- v5.8.8 4.1.0 v5.8.9 5.1.0 v5.10.0 5.0.0 v5.10.1 5.1.0 v5.12.0 5.2.0 v5.12.1 5.2.0 v5.12.2 5.2.0 v5.12.3 5.2.0 v5.12.4 5.2.0 v5.14.0 6.0.0 v5.14.1 6.0.0

        Improvements in 5.14 made it virtually impossible to backport those improvements to 5.12 and older: you cannot take a single (Unicode) module from 5.14's CORE distribution and "upgrade" Unicode to 6.0.0 in 5.12.x

        Enjoy, Have FUN! H.Merijn

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://938718]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (5)
As of 2017-05-26 05:36 GMT
Find Nodes?
    Voting Booth?