Perl -V описание требуется - PullRequest
0 голосов
/ 18 ноября 2010

Команда для поиска версии perl "perl -V" предоставляет информацию о платформе, компиляторе, компоновщике и библиотеках, динамическом компоновке, опциях времени компиляции и локально примененных исправлениях.Не могли бы вы сообщить мне, откуда извлекается каждая из этих данных (переменные среды или любой другой метод), и описание различных параметров в каждой группе.У меня проблема с включением библиотечных файлов из-за того, что на моей машине установлено много версий Perl.

Ниже приводится описание, которое я получил от своей машины:

Сводка моего perl5 (версия 5, версия 10)Subversion 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

Ответы [ 2 ]

8 голосов
/ 18 ноября 2010

См. Config .

Модуль Config содержит всю информацию, которая была доступна программе Configure во время сборки Perl (более 900 значений).

Вы можете запросить значение отдельной переменной.Например,

C:\> perl -V:intsize

Теперь, если у вас несколько установок Perl в Windows, вам нужно быть осторожным.У меня есть шесть отдельных версий на моей машине.В какой-то момент я решил использовать дистрибутив ActiveState в качестве «системного».Поэтому мой путь начинается с bin каталогов этого дистрибутива:

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

Остальные живут в своих собственных каталогах.У меня есть пакетные файлы для всех из них.Эти командные файлы просто добавляют соответствующий каталог bin к пути.Я также могу явно вызывать их по пути.Например,

E: \ Home> c: \ opt \ strawberry-5.12.1 \ perl \ bin \ perl -V

Кроме того, я использую Console2 , которыйпозволяет мне открывать cmd.exe оболочки во вкладках с правильными настройками для каждой вкладки.Наконец, я использовал FileMenu Tools , чтобы настроить ярлыки правой кнопкой мыши, чтобы открывать командные строки с соответствующими настройками.

Таким образом, я могу использовать один основной Perl для повседневной работы.день разработки и другие версии доступны по мере необходимости.И никто из них не попирает друг друга.

Имейте в виду, что, хотя это и не кажется абсолютно необходимым, вы должны настроить каждый дистрибутив cpan на использование каталога, специфичного для версии.

0 голосов
/ 19 ноября 2010

Какая версия 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";

Проблема в том, что более ранняя версия Perl (где-то около 5.5) имела десятичное число. Поэтому вам нужно проверить $Config{PERL_REVISION}, чтобы увидеть, является ли это десятичное число или число с плавающей запятой.

Взгляните на документацию модуля конфигурации Где-то там вы найдете все, что вам нужно знать. Самая большая проблема у меня заключается в том, что трудно точно знать, что вы ищете. Было бы хорошо, если бы они собрали некоторые из наиболее распространенных в одном месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...