Недавно я написал новый Perl script для уничтожения процессов на основе имени или имени процесса и расширения его с помощью классов, чтобы я мог повторно использовать код процесса в других программах. Мой текущий макет -
/home/mutew/src/prod/pskill <-- Perl script
/home/mutew/src/prod/Process.pm <-- Package to handle process descriptions
Я добавил ~/src/prod в свою переменную $PATH для доступа к script из любого места. При запуске script из любого каталога, кроме его резидентного каталога, появляется сообщение "Can not locate Process.pm in @INC" (что понятно, учитывая, что кроме общих каталогов в /usr, @INC включает только текущий directory - '.'). Одним из способов обхода, который я использовал, является директива use lib как таковая -
use lib '/home/mutew/src/prod';
но это серьезная проблема переносимости. Любые решения, которые также позволят мне экспортировать script в другие системы без изменений?
ИЗМЕНИТЬ
- Я выбрал ответ "depesz" как правильный из-за его простоты и использования основного модуля.
- brian d foy answer, хотя предлагает другие методы для достижения того же (TMTOWTDI), его вклад в perlfaq8 делает этот вопрос абсолютно излишним.