Как сообщает "perldoc -f использование":
Это точно эквивалентно
BEGIN { require Module; import Module LIST; }
за исключением того, что модуль должен быть bareword.
Полагая, что другой путь, «использование» эквивалентно:
- работает во время компиляции,
- преобразования имя пакета в имя файла,
require
-ную это имя файла , и
import
-вкладка эта упаковка.
Таким образом, вместо вызова использования, вы можете позвонить и потребовать импорта Внутри НАЧАТЬ блок:
BEGIN {
require '../EPMS.pm';
EPMS->import();
}
И, конечно, если ваш модуль на самом деле не делать любой символ экспортирующей или другой инициализации когда вы вызываете импорт, вы можете оставить эту строку:
BEGIN {
require '../EPMS.pm';
}
Обычно вы хотите сделать unshift, чтобы вы были в каталоге на перед списком. Таким образом, Perl не должен искать все @INC, чтобы найти его. :) –
Да, это так, поэтому преобразование BEGIN {push} => 'use lib 'тоже не идентично. Но я хотел показать минимальное полезное изменение от вопроса, чтобы оно работало. Спасибо, что заметили :) – ephemient
Существует также PERL5LIB и ключ -I, как упоминает Брайан. – Axeman