путь1, путь2, путь3. И Perl загрузит path1/foo.pm
.
Почему вы ожидаете, что это будет что-то другое?
Глядя на perlfunc perlvar
, я вижу, что они явно не говорят этого, но они говорят:
Массив @INC содержит список мест, в которых конструкции do EXPR, требуют или используют конструкции для поиска своих библиотечных файлов.
Я думаю, что подсказка есть список . Нет ничего необычного в том, что список будет обрабатываться первым до последнего.
Возможно, вы могли бы поместить этот код прямо перед вашим use foo;
оператором:
BEGIN { say "\@INC=(${\join( ', ', @INC )})"; }
Если это все еще показывает вам @INC=(/path1, /path2, /path3)
, поместите это после оператора use
:
BEGIN { say "\$INC{'foo.pm'}=$INC{'foo.pm'}"; }
И если тот все еще показывает $INC{'foo.pm'}=/path3/foo.pm
, то я думаю, что вы не указываете свои пути поиска так, как могли бы. Вы можете подумать, что у вас есть foo.pm
в том же каталоге, который указан как '/ path1', но вероятность состоит в том, что вы запутались в некотором пути.