The command for finding the perl version “perl -V” gives information related
Platform, Compiler, Linker and Libraries, Dynamic Linking, Compile-time options & Locally applied patches. Could you please let me know from where each of these information’s are extracted(Environment variables or any other method) and description of various parameters under each group.
I am facing problem in library files inclusion because of many version of Perl installed in my machine.
Below is the description I got from my machine:
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
Platform:
osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags =' -s -O2 -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTE
XT -DPERL_IMPLICIT_SYS -fno-strict-aliasing -DPERL_MSVCRT_READFIX',
optimize='-s -O2',
cppflags='-DWIN32'
ccversion='', gccversion='3.4.5', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='long long', lseek
size=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='g++', ldflags ='-s -L"C:\strawberry\perl\lib\CORE" -L"C:\strawberry\c\li
b"'
libpth=C:\strawberry\c\lib
libs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32
-ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm
-lversion -lodbc32 -lodbccp32
perllibs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdl
g32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lw
inmm -lversion -lodbc32 -lodbccp32
libc=-lmsvcrt, so=dll, useshrplib=true, libperl=libperl510.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-mdll -s -L"C:\strawberry\perl\lib\CORE" -L"C:\st
rawberry\c\lib"'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP PL_OP_SLAB_ALLOC USE_ITHREADS
USE_LARGE_FILES USE_PERLIO
Built under MSWin32
Compiled at Apr 30 2009 14:30:10
%ENV:
PERL5_INCLUDE="C:\Perl\lib\CORE\"
PERL5_LIB="C:\Perl\lib\CORE\"
@INC:
C:/Perl/lib
C:/Perl/site/lib
See Config.
You can query the value of an individual variable. E.g.,
Now, if you have multiple Perl installations on Windows, you need to be careful. I have six separate versions on my machine. At some point, I decided to use the ActiveState distribution as the “system” one. Therefore, my path starts with the
bindirectories of that distribution:The other ones live in their own directories. I have batch files for all of them. These batch files simply prepend the relevant
bindirectories to the path. I can also explicitly invoke them by path. E.g.,E:\Home> c:\opt\strawberry-5.12.1\perl\bin\perl -V
In addition, I use Console2 which enables me to open
cmd.exeshells in tabs with the correct settings for each tab. Finally, I used FileMenu Tools to set up right-click short cuts to open command prompts with the relevant settings applied.This way, I can use one main Perl for day-to-day development and other versions are available as needed. And, none of them tramples on each other’s toes.
Keep in mind that, while it does not seem to be absolutely necessary, you should set up each distributions
cpanto use a version specific directory.