ActiveState Community

arch specific directories in @INC

Posted by riteshsood on 2009-10-10 16:53

Hi all,

I've recently installed Active State Perl V5.8.8 on a department machine running RedHat EL 3. RHEL 3 provides perl V5.8.0 which I can't use since it won't build/run several modules that I got from CPAN and hence I'm trying out Active State.

Here's what I have in my .bash_profile:

# add local entries to perl's @INC
#sitecustomize.pl
perl_ver=5.8.8
#perl_ver=`perl -Mstrict -wall -e "print join('.', map {ord} split('', \$^V));"`
PERL5LIB_64="/usr/local/lib64/perl5/site_perl/$perl_ver:/usr/local/lib64/perl5/$perl_ver"
PERL5LIB_32="/usr/local/lib/perl5/site_perl/$perl_ver:/usr/local/lib/perl5/$perl_ver"
PERL5LIB=$PERL5LIB_64:$PERL5LIB_32

so that on a RHEL5 system that has perl V5.8.8:

$ perl -V
%ENV:
    PERL5LIB="/usr/local/lib64/perl5/site_perl/5.8.8:/usr/local/lib64/perl5/5.8.8:/usr/local/lib/perl5/site_perl/5.8.8:/usr/local/lib/perl5/5.8.8"
  @INC:
    /usr/local/lib64/perl5/site_perl/5.8.8
    /usr/local/lib64/perl5/5.8.8
    /usr/local/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
    /usr/local/lib/perl5/site_perl/5.8.8
    /usr/local/lib/perl5/5.8.8/i386-linux-thread-multi
    /usr/local/lib/perl5/5.8.8
*snip*

so you see that the arch specific dir i386-linux-thread-multi is getting included automatically in the @INC path. However, on the RHEL3 system where I've installed Active State Perl,

$ perl -V
%ENV:
    PERL5LIB="/usr/local/lib64/perl5/site_perl/5.8.8:/usr/local/lib64/perl5/5.8.8:/usr/local/lib/perl5/site_perl/5.8.8:/usr/local/lib/perl5/5.8.8"
  @INC:
    /usr/local/lib64/perl5/site_perl/5.8.8
    /usr/local/lib64/perl5/5.8.8
    /usr/local/lib/perl5/site_perl/5.8.8
    /usr/local/lib/perl5/5.8.8
    /opt/ActivePerl-5.8/site/lib
    /opt/ActivePerl-5.8/lib
    .

The arch specific dir is not included!

In perl's native documentation, the arch specific dirs *should* get included automatically. Does Active State Perl not implement this functionality, or am I missing some config option?

Help much appreciated,
Ritesh

riteshsood | Sun, 2009-10-11 14:46

the issue turned out to be a trivial one after all: difference between RedHat's and ActiveState's definition of architecture.

with RedHat's perl:

$ perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.18-128.1.10.el5, archname=i386-linux-thread-multi

while, with ActiveState perl:

$ perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.2.24-7.0.3, archname=i686-linux-thread-multi
uname='linux redhat-70-i386.activestate.com 2.2.24-7.0.3 #1 fri mar 14 08:28:25 est 2003 i686 unknown '