Можете ли вы показать нам рекурсивный список каталога, в котором вы храните модули, которые хотите использовать? ls -R
может помочь нам выяснить, есть ли у вас правильные пути.
Когда вы используете переключатель -I
, вы должны убедиться, что вы нашли правильный путь там. Если вы используете модуль:
use Some::Module;
Perl на самом деле ищет:
$lib/Some/Module.pm
$lib
является одним из каталогов в @INC
. Однако можно сказать, что если другой каталог находится не в @INC
, Perl не будет его искать. Это означает, что Perl не будет автоматически искать для вас подкаталоги
Если ваш модуль не находится в этом месте, Perl не собирается рыться в этом $lib
, чтобы найти его. Ваш модуль XS, вероятно, не хранится таким образом. Он может иметь версию Perl и тип архива в пути, поэтому вы можете найти его в:
$lib/5.10.1/darwin-2level/Some/Module.pm
Вам необходимо добавить эти пути самостоятельно, если вы используете -I
.
Однако вы можете загружать модули в командной строке. Гораздо проще использовать lib
, который добавляет для вас дополнительные каталоги:
perl -Mlib=/path/to/lib ...