Perl загружает общие объекты из каталогов в каталоге lib
.В некоторых установках Perl это будет каталог lib
, параллельный каталогу bin
, в котором находится основной двоичный файл Perl.В некоторых системах он будет расположен в другом месте.Например, моя собственная сборка Perl (5.14.1 на MacOS X) говорит (часть вывода из perl -V
):
@INC
/Users/jleffler/Perl/v5.14.1-64/lib/perl5/site_perl/5.14.1/darwin-2level
/Users/jleffler/Perl/v5.14.1-64/lib/perl5/site_perl/5.14.1
/Users/jleffler/Perl/v5.14.1-64/lib/perl5/5.14.1/darwin-2level
/Users/jleffler/Perl/v5.14.1-64/lib/perl5/5.14.1
С другой стороны, система Perl (5.12.3) говорит:
@INC:
/Library/Perl/5.12/darwin-thread-multi-2level
/Library/Perl/5.12
/Network/Library/Perl/5.12/darwin-thread-multi-2level
/Network/Library/Perl/5.12
/Library/Perl/Updates/5.12.3
/System/Library/Perl/5.12/darwin-thread-multi-2level
/System/Library/Perl/5.12
/System/Library/Perl/Extras/5.12/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.12
Общие объекты в MacOS X имеют расширение .bundle
(вместо .so
), и некоторые из имеющихся у меня пакетов:
.../lib/perl5/site_perl/5.14.1/darwin-2level/auto/DBD/Informix/Informix.bundle
.../lib/perl5/site_perl/5.14.1/darwin-2level/auto/DBD/SQLite/SQLite.bundle
.../lib/perl5/site_perl/5.14.1/darwin-2level/auto/DBI/DBI.bundle
СоответствующиеФайлы PM:
.../lib/perl5/site_perl/5.14.1/darwin-2level/DBD/Informix.pm
.../lib/perl5/site_perl/5.14.1/darwin-2level/DBD/SQLite.pm
.../lib/perl5/site_perl/5.14.1/darwin-2level/DBI.pm
В любом случае Perl будет ожидать поиск файла .so
в каталоге, связанном с именем модуля.Там должны быть инструкции по установке, тем более, что вы заплатили за это.Будет (по крайней мере) общий объект и файл .pm
для установки в двух связанных каталогах.