Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Arguements for upgrading from Perl 5.8

by furry_marmot (Pilgrim)
on Nov 17, 2011 at 21:48 UTC ( #938686=note: print w/replies, xml ) Need Help??

in reply to Arguements for upgrading from Perl 5.8

Sorry, but another vote for leaving it alone. If you're stuck on particular bugs, or if modules you use regularly have been upgraded and only work on later versions of Perl, that could give you the basis of your case for upgrading. But why 5.10??? The fact that you're talking about only getting the features in 5.10 suggests it's more of a "latest and greatest" kind of thing than any real business need. Perl 5.10.1 fixed a bunch of bugs in 5.10, and there are two major releases after that, with 5.16 not too terribly far away; so upgrading to 5.10 is just pointless.

Still, if you just want to install a more recent perl, perhaps pointing out to your bosses that you're three major releases behind, you could also replicate CPAN on a local machine, and install current modules from there.

But if all you want is say and given/when, you can replicate something quite close to those quite easily.


Replies are listed 'Best First'.
Re^2: Arguements for upgrading from Perl 5.8
by dlarochelle (Sexton) on Nov 18, 2011 at 00:49 UTC

    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.

      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.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2018-06-18 19:42 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (110 votes). Check out past polls.