В настоящее время я использую Perl 5.16.3 в Centos 7, так как я активно развиваюсь, я использую PERL5LIB
env, чтобы установить мои пути в @INC
.
Пример:
export PERL5LIB=/Dev/Test:/Dev/Test/
Пока все работало хорошо, до вчерашнего дня.Если я пытаюсь динамически загрузить класс через пример класса Test.pm
.
Пример Test.pm
:
my $classload = "${class}::${Type}";
eval "use $classload";
if($@)
{
warn "$classload";
throw #something
}
В приведенном выше примере следующий класс передается какclassload var:
"Test::Call"
Структура файла выглядит следующим образом:
- (Test as Folder) -> Call.pm
- Test.pm
К сожалению, он не находит класс, но когда я считал путь @INC
через print STDERR "@INC \ n";
вместо warn "$ classload";
, я немного растерялся, потому что путь @INC
указывает на каталог / tmp / par-726f6f74 / cache-20a8fbc
вместо моего экспорта PERL5LIB
vars, почему Perl делает это и как я могу это исправить?