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
как можно раньше в вашей программе.