ady has asked for the wisdom of the Perl Monks concerning the following question:

Greetings monks!

I'd like to upgrade my ActivePerl installation from v.5.8.8 to the new v. 5.10.

I hesitate though, because of the following "disclaimer" in the ActiveState Perl 5.10 release note

Perl 5.10 is not binary compatible with Perl 5.8. In particular, do not attempt to use extensions or PPM packages built for ActivePerl 800 series builds with ActivePerl 1000 series builds and vice versa. Please check Incompatible Changes in the perl5100delta manpage for known source level incompatibilities between the Perl 5.10 releases and the earlier releases in the Perl 5.8 series.

It's not quite clear to me, exacly what are the implications of this statement of incompatibility : does it mean that you can't use any installed PPM packages for v.5.8.8 with v.5.10 (that is: you have to start with a clean slate and reinstall all packages with new versions built for 5.10 ?).

I'd like to hear of any practial experiences of migrating from ActiveState ActivePerl v.5.8 to 5.10.

Best regards

Allan Dystrup

I found this node #658909 at PM (by randyk), which was helpful in locating perl 5.10 ppm's not supported by ActiveState. Thank's Randy!

If you're using the AS Perl dev kit you will be interested in this statement from the AS Website (I tried building a Perl 5.10 exe with the PDK 7.0, -- but it seems we'll have to wait for ver. 7.1 to be able to do this.):

PDK 7.0 supports both ActivePerl 5.6 and ActivePerl 5.8. Support for ActivePerl 5.10 will be provided in PDK 7.1 in early Q1 2008. As per our usual policy, this will be a free update for all PDK 7.0 users.

  • Comment on Experience with ActivePerl 5.10 vs. 5.8 PPM incompability

Replies are listed 'Best First'.
Re: Experience with ActivePerl 5.10 vs. 5.8 PPM incompability
by syphilis (Archbishop) on Jan 06, 2008 at 12:34 UTC
    that is: you have to start with a clean slate and reinstall all packages with new versions built for 5.10

    Yep - that's pretty much the case. Any *pure perl* modules wouldn't have to be reinstalled, but any perl extensions (ie modules that contain XS code, and therefore need some compilation) *would* need to be reinstalled.

    You probably aren't using all that many pure perl modules - which means that, in reality, you'd just remove your current 5.8 installation entirely, and build your 5.10 installation from scratch.

    PPM probably now has features that would enable you to easily install (into 5.10) all of the modules you had on 5.8 ... but I don't know.

    Afterthought: To ease the transition, you could run *both* perl 5.8 and perl 5.10 on the same box by installing 5.10 to a different location. Then it's just a matter of setting the path to point to whichever perl you want to use at any particular time.
Re: Experience with ActivePerl 5.10 vs. 5.8 PPM incompability
by Not_a_Number (Prior) on Jan 06, 2008 at 13:29 UTC

    Check out the ActiveState faq under Upgrading from ActivePerl 5.8.x. Apparently, you can save your 'PPM Profile' thus:

    ppm install PPM-Profile ppmprofile save C:\profile.xml

    Then, when you have installed 5.10:

    ppm install PPM-Profile ppmprofile restore C:\profile.xml

    However (disclaimer), I haven't tried this yet...

      Thanks NaN :) -
      I've got :
      ... ActivePerl v.
      ... PPM v. 4.02, 2007 ActiveState SW. Inc.

      c:\ppm install PPM-Profile
      installs :
      ... C:\Perl\site\bin\
      ... C:\Perl\site\bin\ppmprofile.bat
      ... C:\Perl\html\bin\ppmprofile.html

      C:\Perl\site\bin>ppmprofile save C:\profile.xml
      ppmprofile.bat save is not supported for PPM4 yet at ppmprofile.bat line 94.

      cat ppmprofile.bat :
      . . 91 sub save { 92 my $profile = shift @ARGV || 'profile.xml'; 93 94 die "$0 save is not supported for PPM4 yet" if PPM4; 95 96 open(my $fh, ">", $profile) 97 || die "Can't open profile file:" . "$profile ($!)"; . .

      OOps, seems my version of PPM doesn't support ppmprofile save / restore ... So I guess i'll have to try the other option in Upgrading from ActivePerl 5.8.x.

      ... 1 Use Window's Add / Remove Programs applet (accessible from the Control Panel) to uninstall ActivePerl.
      ... 2 Manually delete all directories beneath the Perl installation directory (by default C:\Perl) except the site\lib directory.
      ... 3 Install ActivePerl to the same directory (i.e., C:\Perl).
      ... 4 Use the ppm upgrade command to check for module updates.

      Has anyone tried that yet ?
      Best regards /

        Hmm, I have the same problem:

        ppmprofile.bat save is not supported for PPM4 yet...

        Here's what I intend to try as a workaround when I upgrade to 5.10. Any suggestions for improvement welcome.

        (1) At the command line, run this command:

        ppm list --fields name > C:/my_modules.txt

        (2) Uninstall 5.8, install 5.10 (as per the ActiveState instructions that you quote).

        (3) Run the following script:

        open my $fh, '<', 'C:/my_modules.txt' or die "Oops: $!\n"; while ( <$fh> ) { chomp; print "Installing $_...\n"; system ( "ppm", "install", $_ ); }

        A bit of a kludge? but better than trying to do the whole thing manually???

        So I guess i'll have to try the other option in Upgrading from ActivePerl 5.8.x

        No - those instructions relate to upgrading from one version of perl 5.8.x to a more recent version of perl 5.8.x. But they don't apply to upgrading from 5.8.x to 5.10.x.

        In step 2, the site/lib directory also needs to be deleted since it could (and almost certainly would) contain modules that are binary-incompatible with 5.10.

Re: Experience with ActivePerl 5.10 vs. 5.8 PPM incompability
by CountZero (Bishop) on Jan 06, 2008 at 14:59 UTC
    Indeed you will have to re-install all your non-core modules. It happens everytime there is a major upgrade: I had to do it when I switched from the 5.6 to 5.8 series.

    It is less of a burden than it seems: by installing MinGW you get yourself a compiler which is compatible with AS Perl and then CPAN can install most of the modules by itself (after making first a snapshot bundle of your existing modules). The few which refuse to be installed by CPAN I download with ppm.


    A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James