У нас есть Perl фреймворк, в котором мы создали какой-то настроенный модуль. Всякий раз, когда я пытаюсь использовать модули внутри подкаталога, выдается ошибка.
Ниже приведена структура моей папки, frameworkfolder
- это базовый / root каталог проекта:
.../frameworkfolder/PerlModules/Initialize.pm
Мне нужно использовать это Initialize.pm
в файле Perl, который находится в другом каталоге
.../frameworkfolder/TestCases/FVT/fvt/fvt.pl
В fvt.pl
, когда я use PerlModules::Initialize
, он выдает следующую ошибку:
Can't locate PerlModules/Initialize.pm in @INC (you may need to install the PerlModules::Initialize module) (@INC contains: /usr/opt/perl5/lib/site_perl/5.28.1/aix-thread-multi /usr/opt/perl5/lib/site_perl/5.28.1 /usr/opt/perl5/lib/5.28.1/aix-thread-multi /usr/opt/perl5/lib/5.28.1)
Как использовать пакет Initialize.pm
Perl из fvt.pl
? или любые другие perl файлы в любом другом каталоге?
Я пробовал следующие решения, но не повезло:
use lib '../../../frameworkfolder';
и
use FindBin;
use lib "$FindBin::Bin"
и
use FindBin;
use File::Spec;
use lib File::Spec->catdir($FindBin::Bin, '../../', 'lib');
и
#!/usr/local/bin/perl -w -I /frameworkfolder/
Не нашли ответа в: Как создается Perl's @ IN C? (ака, какие есть способы повлиять на то, где ищут модули Perl?)