You will have to recompile every single module you're using as 5.005 and 5.8 are not binary compatible. In addition, some Perl modules will modify themselves depending on the installing Perl version.

These are the steps I see, in order:

  1. Get your boss's buyin that this will be a 6-month process.
  2. Get your code into source control. Subversion is probably best, here. This is non-negotiable failure point.
  3. Get some sort of one-step deployment/build process. This may involve adding configuration files, writing scripts, and the like. This is non-negotiable failure point.
  4. Get a machine that you and only you control. Since you're running Linux, converting your desktop should be plenty powerful. The goal is isolation, not power. (I did this at my last job and my desktop was the production webserver/dbserver for a few months.) Ideally, not even the sysadmin has root on your box. This is a non-negotiable failure point.
  5. Build your ideal system on your isolated machine. Once you have it built (Perl / DBD modules / apache / mod_perl / mod_ssl / database / etc), take a snapshot. Ghost is good for this, but any backup/restore will do. Remember - you have to deploy this configuration a few times. You will want to be able to do this without having to remember to install foo before bar but after floober. This is non-negotiable failure point.
  6. Write down a series of acceptance tests. Focus on the critical systems. For example, if you were developing Quicken, you'd start your tests with the lineitem entry stuff and worry about the pretty graphs later.

Note - none of the above have anything to do with Perl, specifically. They're good practices for any kind of major infrastructure upgrade.

Oh - those failure points? If you don't do them, you fail. Period.

Once you have done all that (about 3-6 weeks work), then you can start the actual work of migrating your codebase from 5.005 to 5.8.x by doing a build from source control to your isolated box, then running your acceptance tests against it.

Have fun - this is a wonderful project that will give you amazing kudos when you get it done.


  • In general, if you think something isn't in Perl, try it out, because it usually is. :-)
  • "What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?"

In reply to Re: Finally! Saying goodbye to perl 5.005 by dragonchild
in thread Finally! Saying goodbye to perl 5.005 by the_slycer

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.