Как лучше всего использовать библиотеку, каталог которой может иногда меняться? - PullRequest
1 голос
/ 31 июля 2010

Я пишу сценарии Perl и, когда у меня слишком много функций, я обычно перемещаю их все в библиотеку (также хорошо для повторного использования кода). Поэтому я обычно создаю пакет (например, my_lib.pm) и добавляю use lib 'path/to/lib'; use my_lib; к своему сценарию.

Интересно, можно ли пропустить use lib 'path/to/lib';, что иногда доставляет мне проблемы, поскольку я реорганизую свою иерархию каталогов и заставляю Perl искать пакеты в том же каталоге, из которого запускается скрипт.

Спасибо.

Ответы [ 3 ]

1 голос
/ 31 июля 2010

Во-первых, я предлагаю вам - «Никогда не связывайтесь с Core Perl и его библиотеками - никогда не ставьте свою библиотеку в ряд».

Если вы хотите, чтобы ваш скрипт просматривал текущую директорию, используйте:

require "mylibrary/functions.pm";

где mylibrary - это каталог, который существует по тому же пути, что и ваш скрипт вызывающего абонента.

0 голосов
/ 31 июля 2010

Я бы поместил мой файл .pm в один каталог, чтобы вы могли использовать if из скриптов Perl независимо от их местоположения.

Затем создайте переменную окружения PERL5LIB с именем этого каталога.

0 голосов
/ 31 июля 2010

Вам нужно

use lib '.';
...