FindBin для модулей Perl, которые находятся в каталоге моего скрипта - PullRequest
4 голосов
/ 11 декабря 2011

У меня есть скрипт, который использует модули, которые являются внешними по отношению к стандартной библиотеке Perl, и хотел бы как-то их использовать.У меня нет прав для установки их в каталог Perl lib, и мне было интересно, могу ли я просто разместить эти внешние модули в своем каталоге скриптов.

Я читал об использовании FindBin, но, похоже, он не работает.Я правильно его использую?

Сейчас я хочу использовать 3 модуля, которые я хочу использовать (2 из которых являются каталогами).Допустим, мой сценарий находится в Dir1, тогда мои модули будут находиться в подкаталоге Dir1 с именем Dir2.

Итак, если FindBin находит Dir1, то все, что мне нужно сделать, это?1009 * Кажется, моя программа работает, но ничего не делает.Поэтому я почти уверен, что он неправильно импортирует модули.

Спасибо

1 Ответ

7 голосов
/ 11 декабря 2011

Правильный способ сделать это, скорее всего, будет:

use lib "$FindBin::Bin/Dir2";
use SubDir::Module1;

или:

use lib $FindBin::Bin;
use Dir2::Subdir::Module;

Оба найдут файлы, поведение будет зависеть от того, объявят ли модулисами как внутри package Dir2 или нет.

Ознакомьтесь с документами FindBin и lib .

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