Ответ 1
Perl вызывает ссылку подпрограммы в @INC
, когда она перемещается @INC
для поиска модуля. То есть вы будете запускать его при попытке загрузить модуль с помощью use
или require
, и Perl не найдет этот модуль в предыдущих местах @INC
.
BEGIN {
push @INC,
sub { print "Oops: There was an error looking for $_[1]\n"; };
}
eval "use Cat::Burglar";
eval "use Local::NotThere";
require Cat::Burglar;
Вам нужно убедиться, что ссылка на подпрограмму находится в @INC
, прежде чем пытаться загрузить модули. Помните, что use
- это функция времени компиляции и что require
- это функция времени выполнения. Как и при добавлении других "обычных" @INC
записей, вы, вероятно, захотите сделать это в блоке BEGIN
как можно раньше в своей программе.