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

I have searched and seen similar problems on this site, but not quite. Not even sure if this is the right place to ask. Last night I installed Fedora Core 14 and did a "yum update". When I do "perl -V", it tells me that I have 5.12.3. Great, that is what I want. However, it tells me that @INC contains 5.10.0 directories instead of 5.12.3. Anyone know who I should report this to? Also, (asking because I do not know Perl internals), can I just rename (mv) those directories? Thank you, Jim Whoops, provided wrong info: My "perl -V -V:'install.*'
Summary of my perl5 (revision 5 version 12 subversion 3) configuration +: Platform: osname=linux, osvers=2.6.32-71.el6.x86_64, archname=i386-linux-thr +ead-multi uname='linux x86-01.phx2.fedoraproject.org 2.6.32-71.el6.x86_64 #1 + smp wed sep 1 01:33:01 edt 2010 i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOU +RCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 - +march=i686 -mtune=atom -fasynchronous-unwind-tables -Dccdlflags=-Wl,- +-enable-new-dtags -DDEBUGGING=-g -Dversion=5.12.3 -Dmyhostname=localh +ost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dprefi +x=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/loc +al/share/perl5 -Dsitearch=/usr/local/lib/perl5 -Dprivlib=/usr/share/p +erl5 -Dvendorlib=/usr/share/perl5 -Darchlib=/usr/lib/perl5 -Dvendorar +ch=/usr/lib/perl5 -Darchname=i386-linux-thread-multi -Duseshrplib -Du +sethreads -Duseithreads -Dusedtrace=/usr/bin/dtrace -Duselargefiles - +Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3 +ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversionon +ly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r +_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent +_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/u +sr/bin -Dotherlibdirs=/usr/local/lib/perl5/site_perl/5.10.0/i386-linu +x-thread-multi:/usr/local/lib/perl5/site_perl/5.10.0:/usr/lib/perl5/v +endor_perl/5.10.0/i386-linux-thread-multi:/usr/lib/perl5/vendor_perl: +/usr/lib/perl5/site_perl' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und +ef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasin +g -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D +_FILE_OFFSET_BITS=64', optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions +-fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=a +tom -fasynchronous-unwind-tables', cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -f +stack-protector -I/usr/local/include' ccversion='', gccversion='4.5.1 20100924 (Red Hat 4.5.1-4)', gccos +andvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +2 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -fstack-protector -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread +-lc -lgdbm_compat perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.12.90.so, so=so, useshrplib=true, libperl=libperl +.so gnulibc_version='2.12.90' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,--en +able-new-dtags -Wl,-rpath,/usr/lib/perl5/CORE' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_F +ORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-siz +e=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -L/usr/ +local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITH +READS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Built under linux Compiled at Jan 24 2011 10:31:17 @INC: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl5 /usr/share/perl5 /usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl . installarchlib='/usr/lib/perl5'; installbin='/usr/bin'; installhtml1dir=''; installhtml3dir=''; installman1dir='/usr/share/man/man1'; installman3dir='/usr/share/man/man3'; installprefix='/usr'; installprefixexp='/usr'; installprivlib='/usr/share/perl5'; installscript='/usr/bin'; installsitearch='/usr/local/lib/perl5'; installsitebin='/usr/local/bin'; installsitehtml1dir=''; installsitehtml3dir=''; installsitelib='/usr/local/share/perl5'; installsiteman1dir='/usr/local/share/man/man1'; installsiteman3dir='/usr/local/share/man/man3'; installsitescript='/usr/local/bin'; installstyle='lib/perl5'; installusrbinperl='undef'; installvendorarch='/usr/lib/perl5'; installvendorbin='/usr/bin'; installvendorhtml1dir=''; installvendorhtml3dir=''; installvendorlib='/usr/share/perl5'; installvendorman1dir='/usr/share/man/man1'; installvendorman3dir='/usr/share/man/man3'; installvendorscript='/usr/bin';

Replies are listed 'Best First'.
Re: wrong @INC
by jethro (Monsignor) on Feb 28, 2011 at 17:40 UTC

    Renaming would be a bad idea. Your package manager (yum) would not find the files in those directories anymore. You could make a symbolic link, but if some Fedora update later tries to correct the situation that script might fail.

    But the important thing is not the name of the dir, but the contents. If the modules you have in that dir are the right ones, then obviously everythings fine

Re: wrong @INC
by ikegami (Patriarch) on Feb 28, 2011 at 17:17 UTC

    Instead, or both? Both is not a problem. Instead would indicate a bad (or simply odd) build of Perl.

    Could you provide the output of perl -V -V:'install.*', please?

    Update: Added request.

Re: wrong @INC
by ikegami (Patriarch) on Mar 01, 2011 at 08:58 UTC

    However, it tells me that @INC contains 5.10.0 directories instead of 5.12.3

    Based on the additional info provided, the 5.10.0 directories are just additional directories to search. That means that pure Perl modules that were installed with 5.10.0 don't need to be reinstalled. Modules installed using 5.12 will not go into those directories. (They'll go into /usr/local/share/perl5.)

Re: wrong @INC
by hsinclai (Deacon) on Feb 28, 2011 at 21:50 UTC
    I have some builds of fc14 (but on 64bit platform) and the layout is very similar to yours - however I'm not sure how /some/ of the directories got into @INC

    I have a combination of the fc14 repo installations with a bunch of CPAN stuff, it appears the CPAN stuff all went into the /usr/local/ directories.

    Here are the directories found in @INC which do not exist on disk:
    /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl
    I think this may be b/c 64bit is a hybrid system so maybe they include (what would be the standard) 32bit directories in @INC in the global RPM build..

    My @INC
    @INC: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/lib64/perl5 /usr/share/perl5 /usr/local/lib64/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/local/lib/perl5/site_perl/5.10.0 /usr/lib64/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl
    My perl is:
    rpm -q perl perl-5.12.2-140.fc14.x86_64

    I'm not sure if this is a problem, but someone more experienced in these matters may know better... might be a good question for the Fedora forums

    update: Those 5.10.0 directories must be stubs of some kind - I'm not sure how to verify that the modules in the standard distribution were in fact built against the 5.12.2 source code. My distro does include perl5122delta so looking at module versions in there might be one way to start verifying..

    also, the 5.10.0 dirs in @INC are found in the config_args strings of the perl build as -Dotherlibdirs