2010-11-18 15 views
0

"perl -V" perl versiyonunu bulmak için kullanılan komut, Platformu, Derleyici, Bağlayıcı ve Kütüphaneler, Dinamik Bağlama, Derleme zamanı seçenekleri & Yerel olarak uygulanan yamalar ile ilgili bilgileri verir. Bu bilgilerin her birinin nereden çıkarıldığını (Ortam değişkenleri veya başka bir yöntem) ve her bir grubun altında çeşitli parametrelerin açıklamasını bildirir misiniz? Makinemde yüklü olan birçok Perl sürümü nedeniyle kütüphane dosyalarının dahil edilmesinde sorun yaşıyorum. Benim Perl5 aitPerl -V description

Özeti (revizyon 5 sürüm 10 yıkılma 0) yapılandırması:

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 

cevap

8

Config Bkz Aşağıda

benim makineden aldım açıklamasıdır.

Yapılandırma modülü, Yapılandırma programında Perl oluşturma zamanında (900'den fazla değer) kullanılabilen tüm bilgileri içerir.

Bireysel değişkenin değerini sorgulayabilirsiniz. Windows üzerinde birden fazla Perl yüklemelerini varsa Ör

C:\> perl -V:intsize 

Şimdi, dikkatli olmak gerekir. Makinemde altı ayrı versiyonum var. Bir noktada, ActiveState dağıtımını "sistem" olarak kullanmaya karar verdim. Bu nedenle, benim yolum bu dağılımın bin dizinleri ile başlar:

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

diğerleri kendi dizinleri yaşamaktadır. Hepsi için toplu dosyam var. Bu toplu iş dosyaları, ilgili bin dizinlerini yalnızca yola ekler. Açıkça onları yoldan da davet edebilirim. Örneğin,

E: \ Ana Sayfa> c: \ opt \ çilek-5.12.1 \ perl bin \ \ perl-V

Buna ek olarak, birlikte sekmelerde cmd.exe kabukları açmamı sağlayan Console2 kullanmak her sekme için doğru ayarları. Son olarak, ilgili ayarların uygulandığı komut komutlarını açmak için sağ kısayollara kısayollar ayarlamak için FileMenu Tools kullandım.

Bu sayede günlük gelişim için bir ana Perl kullanabilirim ve diğer sürümler gerektiğinde kullanılabilir. Ve hiçbiri birbirlerinin ayak parmaklarına basmaz.

Kesinlikle gerekli görünse de, sürüm özel bir dizini kullanmak için her bir dağıtımı cpan ayarlamanız gerektiğini unutmayın.

+0

Ortam değişkeninin güncelleştirilmesi yalnızca kitaplık yolunun değiştirilebileceği bir yol içeriyor mu? (Yukarıdaki açıklamadaki gibi) – hemanth

+1

Tam olarak ne yapmak istiyorsunuz? "Perl -V" komutunun çıkışı değiştirilemez. Program derlendiğinde ayarlanır. Perl modüllerine eklemek istediğiniz dizinleri belirtmek için -I'yi kullanabilir ve PERL5LIB'yi yüklenecek Perl kitaplıklarının dizin yolunu belirtecek şekilde ayarlayabilirsiniz. İstediğin bu mu? Komut satırından 'perldoc perlrun' komutunu çalıştırmayı deneyin (eğer yürütülebilir yolunuzda Perl ikili varsa, çalışmalıdır). Bu size Perl için komut satırı seçeneklerini ve ne için kullanıldığını gösterir. –

0

Hangi Perl sürümü?

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"; 

sorun Perl önceki sürümü (yere yaklaşık 5.5) bir ondalık sayı olmamasıdır. Bu nedenle, ondalık sayı mı yoksa kayan nokta sayısı mı olduğunu görmek için $Config{PERL_REVISION}'u kontrol etmeniz gerekir.

Config module documentation adresine bir göz atın Orada bir yerde, bilmeniz gereken her şeyi bulacaksınız. Sahip olduğum en büyük sorun, tam olarak ne aradığınızı bilmek zor. Daha yaygın olanlardan bazılarını bir arada toplarlarsa iyi olur.