каталоги site и site \ lib для Perl в Windows - PullRequest
1 голос
/ 03 апреля 2011

Я программист на PHP и только что получил задание для работы над некоторыми вещами Perls - мне нужно установить модули.

Но кто-нибудь может уточнить для меня разницу между 'lib' и 'site \ lib' при установке модулей. По какому критерию один модуль установлен в одном, а не в другом?

Действительно ли это актуально в Windows (извините, никогда не работал в UNIX).

Я смотрю на использование Strawberry Perl 5.12.2.0.

Ответы [ 3 ]

6 голосов
/ 03 апреля 2011

lib/ содержит модули, поставляемые с Perl.site/lib/ содержит модуль, который вы установили самостоятельно.Сам Perl не делает различий между ними.

Если site/lib/ не пуст для новой установки, это, вероятно, потому, что Strawberry включает в свой дистрибутив модули, которые обычно не упакованы с Perl.(Я знаю, что ActivePerl делает.)

0 голосов
/ 01 февраля 2019

Самый последний клубничный Perl с именем: strawberry-perl-5.28.1.1-64bit-portable, показать местоположения, указанные @INC:

  @INC:
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/site/lib
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/vendor/lib
    D:/myBuilds/strawberry-perl-5.28.1.1-64bit-portable/perl/lib

Что входит в поставщика ... пока неизвестно ...
(Не стесняйтесь редактировать это.)

0 голосов
/ 03 апреля 2011

ТАКОЕ актуально.Иногда вам нужно установить env var PERL5LIB в "site \ lib; lib", иногда это наоборот.

Пример (действует по состоянию на апрель 2011 г.):

Perl 5.12 включает Try :: Tiny 0.6.

Если вы должны были установить Test :: Fatal, он хочет попробовать:: Tiny 0.7 +.

Таким образом, вы должны обновить его из CPAN: тогда вы получите Try :: Tiny 0.09

, но 0.09 загрузится только тогда, когда вы скажете Perl искатьсначала на сайте \ lib.

...