2010-11-18 4 views
0

perl 버전 "perl -V"를 찾는 명령은 관련 정보를 제공합니다. 플랫폼, 컴파일러, 링커 및 라이브러리, 동적 연결, 컴파일 시간 옵션 & 로컬 적용 패치. 각 정보가 추출 된 위치 (환경 변수 또는 다른 방법)와 각 그룹 아래에서 다양한 매개 변수에 대한 설명을 알려주십시오. 내 컴퓨터에 여러 버전의 Perl이 설치되어있어 라이브러리 파일에 문제가 있습니다. 내 perl5의의Perl -V 설명 필요

요약 (개정 5 버전 10 전복 0) 구성 :

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 

답변

8

Config을 참조 아래

내가 내 컴퓨터에서 가져온 설명입니다.

구성 모듈에는 Perl 빌드 타임 (900 값 이상)에서 구성 프로그램에서 사용할 수있는 모든 정보가 들어 있습니다.

개별 변수의 값을 쿼리 할 수 ​​있습니다. 예 :

C:\> perl -V:intsize 

이제 Windows에 여러 개의 Perl 설치가있는 경우주의해야합니다. 내 컴퓨터에는 6 가지 버전이 있습니다. 어떤 시점에서 필자는 ActiveState 배포판을 "시스템"으로 사용하기로 결정했습니다. 따라서, 내 경로는 그 분포의 bin 디렉토리로 시작

Path=c:\opt\perl\site\bin;c:\opt\perl\bin; ... 

다른 사람이 자신의 디렉토리에 살고 있습니다. 나는 그들 모두를위한 배치 파일을 가지고있다. 이러한 배치 파일은 관련 bin 디렉토리를 경로 앞에 간단히 추가합니다. 또한 경로로 명시 적으로 호출 할 수 있습니다. 예,

E : \ 홈> C : \ 옵트 \ 딸기-5.12.1 \ 펄 빈 \ \ 펄 -V

는 또한, 내가 가진 탭에 cmd.exe 쉘을 열고 나를 수 Console2를 사용 각 탭에 대한 올바른 설정. 마지막으로 마우스 오른쪽 버튼을 클릭하여 관련 설정이 적용된 명령 프롬프트를 열려면 FileMenu Tools을 사용했습니다.

이렇게하면 매일 개발 용으로 하나의 기본 Perl을 사용할 수 있으며 필요에 따라 다른 버전을 사용할 수 있습니다. 그리고 그들 중 누구도 서로의 발가락을 짓밟지 않습니다.

절대적으로 필요하지는 않지만 버전 별 디렉토리를 사용하려면 각 배포본 cpan을 설정해야합니다.

+0

환경 변수를 업데이트하는 것이 라이브러리 경로를 변경할 수있는 유일한 방법입니까? (위 설명과 같이) – hemanth

+1

정확히 무엇을하고 싶습니까? "perl -V"명령의 출력은 변경할 수 없습니다. 프로그램이 컴파일 될 때 설정됩니다. -I를 사용하여 Perl 모듈에 포함 할 디렉토리를 지정하고 PERL5LIB를 설정하여로드 할 Perl 라이브러리의 디렉토리 경로를 지정할 수 있습니다. 너가 원하는게 그거야? 명령 줄에서 'perldoc perlrun'을 실행 해보십시오 (실행 경로에 Perl 바이너리가 있으면 작동 할 것입니다). 이렇게하면 펄에 대한 명령 행 옵션과 그것들이 사용되는 것을 알 수 있습니다. –

0

어떤 버전의 Perl입니까?

use Config; 

print "Perl version: $Config{api_versionstring}\n"; 

# Same thing: 

print "Perl version: $Config{api_revision}.$Config{api_version}.$Config{api_subversion}\n"; 

# Same Again... 

print "Perl version: $Config{PERL_REVISION}.$Config{PERL_VERSION}.$Config{PERL_SUBVERSION}\n"; 

문제는 펄의 이전 버전 (어딘가에 5.5) 진수를 가지고 있다는 것입니다. 따라서 십진수인지 부동 소수인지 확인하려면 $Config{PERL_REVISION}을 확인해야합니다.

에서보기 Config module documentation 어딘가에 알아야 할 모든 것을 찾을 수 있습니다. 내가 가진 가장 큰 문제는 당신이 찾고있는 것을 정확히 아는 것이 어렵다는 것입니다. 더 일반적인 것들을 한 곳에 모아두면 좋을 것입니다.