Windows 32 bit perl 5.16.3.1604 install doesn't contain "site/lib" in @INC

Posted by slg1013 on 2014-07-01 12:03

I've just installed ActivePerl 5.16.3.1604 and when I run perl -V, I see that @INC doesn't include the "site/lib" directory? This is the end of the perl -V output:

Characteristics of this binary (from libperl):
  Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
                        PERLIO_LAYERS PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PL_OP_SLAB_ALLOC
                        USE_ITHREADS USE_LARGE_FILES USE_LOCALE
                        USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                        USE_SITECUSTOMIZE
  Locally applied patches:
        ActivePerl Build 1604 [298023]
  Built under MSWin32
  Compiled at Apr 14 2014 14:32:20
  @INC:
    c:/Perl32/5.16.3/lib
    .

Is this intended? Seems like c:/Perl32/5.16.3/site/lib should also be in @INC. The 5.10.1 build that we are attempting to upgrade from contained both the lib and site/lib directories.

Thanks,

Steve

grahams
ActiveState Staff
Thu, 2014-07-03 09:15

It's a known installer limitation, but I had never heard of it before.

You can't use the Perl version number, with dots, as a directory name. You can replace the dots with dashes, or remove the dots and just use the numbers. To correct it, you'll need to remove the current 5.16 instance, and re-install it on a different PATH.

And if you are on Windows 7 or 8, you now need to log out and log back in, or restart your system, after ActivePerl uninstalls or installs before changes to the registry and $PATH take effect.