Если у меня есть файл .pm
, есть ли способ, который я могу сделать use
, не помещая его на мой путь @INC
? Я думаю, что это было бы яснее в моем конкретном случае использования - яснее, чем использование относительных путей или добавление этого каталога в @INC
.Perl использовать/требовать абсолютного пути?
Edit: Уточнение:.
Я надеялся избежать необходимости перебирать каждый элемент в @INC
, и вместо того, чтобы указать, какой файл непосредственно меня интересует, например, в Node.js, require('something')
будет найдите список путей, но require('/specific/something')
пойдет прямо туда, где я ему расскажу.
В Perl я не уверен, что эта же функциональность находится в require
, но, похоже, она работает.
Однако операторы use
требуют простых слов. Это немного меня озадачило, как войти в абсолютный путь.
'use lib' заявление перед' use module' будет правильным для вашего случая. Но почему вы не можете использовать 'require'. Это больше подходит для вашей проблемы. Также вы можете переменную среды SetEnv PERL5LIB в apache conf применять этот каталог для всего проекта или приложения. – 2013-02-14 10:56:37
Мне нужен файл '.pm'. Я не пробовал, но похоже, что все будет правильно. Обычно я вызываю функции в модуле с синтаксисом, например 'CGI :: ReadParse();' или 'use CGI ': cgi';'. Я не знаю, как это сделать с 'require' для файла' .pm', но если бы я мог сделать это с 'require', это действительно решило бы мою проблему. –
Это работает. Попробуйте «require» Newmodule.pm «;», а затем вызовите 'Newmodule :: subname();'. Он отлично работает. – 2013-02-14 14:50:16