in reply to Re^4: win32 thread version
in thread win32 thread version

It's not normal for 'perl -V' and $Config{osvers} to disagree on the value of 'osvers'. For as long as that discrepancy exists the problem will persist. Do you happen to have more than one version of Config.pm and/or Config_heavy.pl ? I'm wondering if there's one version in perl/site/lib and another version in perl/lib. If there is such a duplication, rename the file that specifies the 'osvers' as 4.0 (so that it can't be found). Other hacks you could try include commenting out that test in Errno.pm.

But, somewhere along the way, someone has done something that ought not have been done, and that's what's causing this strange breakage. The one solution that will work is to completely remove your entire ActivePerl installation and re-install all over again (either 819 or 822 - won't matter) - but that probably involves some inconvenience for you. We could probably hack up a solution that doesn't involve re-installation, if only we could work out what action it was that caused the breakage in the first place.

At some stage around build 819 (I think) ActiveState altered the order of the @INC listing and they changed the directory that contains the core modules. I'm wondering whether that is involved in the problem you're seeing ... but it's hard to tell from here :-)

Cheers,
Rob

Replies are listed 'Best First'.
Re^6: win32 thread version (oops)
by tye (Sage) on Jan 05, 2008 at 16:32 UTC
    It's not normal for 'perl -V' and $Config{osvers} to disagree on the value of 'osvers'.

    Look more carefully:

    die "Errno architecture (MSWin32-x86-multi-thread-5.0) does not ma +tch executable architecture ($Config{'archname'}-$Config{'osvers'})";
    Errno architecture (MSWin32-x86-multi-thread-4.0) does not match execu +table architecture (MSWin32-x86-multi-thread-5.0) at c:/Perl/site/lib +/Errno.pm line 9 .
    Platform: osname=MSWin32, osvers=5.0, archname=MSWin32-x86-multi-thread

    They both report osver=5.0. It is the literal part of the string that does not agree, therefore, most likely, the AnonyMonk was not reading c:/Perl/site/lib/Errno.pm (or has made copy/paste errors). There could be a second Errno.pm that is causing the problem, for example.

    - tye        

      Look more carefully

      Heh ... so I was right ... there *is* a rational explanation ;-)

      I also noticed that, in the original post, Errno.pm was reported as being in perl/site/lib - whereas I'm more used to seeing it in perl/lib. But I didn't pursue that aspect - mainly because I'm no longer sure just where ActiveState are placing the core modules.

      Like you, I'm (now) thinking that the duplication may well be with Errno.pm, rather than Config.pm/Config_heavy.pl.

      Cheers,
      Rob
      Hi there, I'm back on the case

      There are two errno.pm files (and cygwin has a third) but

      c:/Perl/site/lib/Errno.pm
      ... "$Config{'archname'}-$Config{'osvers'}" eq "MSWin32-x86-multi-thread-4.0" or die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not ma +tch executable architecture ($Config{'archname'}-$Config{'osvers'})";

      c:/Perl/lib/Errno.pm

      "$Config{'archname'}-$Config{'osvers'}" eq "MSWin32-x86-multi-thread-5.00" or die "Errno architecture (MSWin32-x86-multi-thread-5.00) does not m +atch executable architecture ($Config{'archname'}-$Config{'osvers'})" +;
        Try renaming C:/perl/site/lib/Errno.pm to Errno_hide.pm (so it can't be found). Does that fix the problem ?

        Cheers,
        Rob