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


in reply to Solaris, Perl 5.8 and use 5.005

First, before you do anything, you have to justify why you want to upgrade. There are some reasons that are irrefutable. These are the "We want to use feature XYZ and it's only in version 5.x.x". Features like that would include:

Additionally, there have been hundreds of security and bug fixes since 5.005_00 was released, all of which are in 5.8.6 (the latest version thus far).

A major reason --NOT-- to upgrade is that you have to reinstall EVERY SINGLE module, and all their dependencies, and all their dependencies, etc. The 5.8 series is not binary compatiable with pre-5.8 installs. This reason alone is sometimes justification enough to avoid an upgrade.

Additionally, if it ain't broke, why you trying to fix it? It's not like 5.005 is unstable through aging or has gained cruft in the time since it was released ...

Now, to answer your specific questions.

  1. You can't upgrade to 5.8 without an upgrade of the OS.

    This is flat wrong. I have run 5.8 on operating systems that were released before Perl5 was even a twinkling in Larry's eye. The easiest way to disprove it is to build your own personal copy of Perl. To do this, you download stable.tar.gz from http://www.cpan.org and use ./configure PREFIX=~ when you build it. The build will take roughly a workday and hammer the server, so I suggest you kick this off overnight after you've done the configure.

  2. Company policy is to have only one version of the perl binary

    Company policy is unchangeable, at least from the level it seems like you are. Multiple Perl installations are easy - just call them different things or put them in different places. They will install their libraries in directory structures that include their version number, so there's no clobbering.

  3. Existing apps will break

    Yes and no. You will have to reinstall the entire module base, but that won't break existing apps. Unless, of course, you install incompatible versions of certain modules, like Class::MethodMaker whose API changed between v1 and v2. Or, if you depended on a bug in a prior version of a module and that bug has gone away.

    The easiest way to test if this will happen is to install 5.8.6 in your home directory and try your applications with it. If they work, that will give management a bunch of warm fuzzies. If they break horribly, that allows you to not look stupid when the migration is approved and you can't make it happen. (That's because you were sick on the day of the meeting and shut your hole.)

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.