Чтобы расширить мой комментарий к ответу моба, попробуйте более свободно использовать %INC
, чтобы помочь вам:
#!/usr/bin/perl
use strict;
use warnings;
use blah;
foreach (keys %INC) {
if (m'blah.pm') {
print "$_ => $INC{$_}\n";
}
}
Соответствующий perldoc perlvar по теме говорит
% INC
Хэш% INC содержит записи для каждого имени файла, включенного через операторы do, require или use.Ключ - это имя файла, которое вы указали (имена модулей преобразуются в пути), а значение - местоположение найденного файла.Оператор require использует этот хэш, чтобы определить, был ли конкретный файл уже включен.
Если файл был загружен через ловушку (например, ссылку на подпрограмму, см. Require для описания этих ловушек), эта ловушка по умолчанию вставляется в% INC вместо имени файла.Обратите внимание, однако, что ловушка, возможно, сама установила запись% INC, чтобы предоставить более конкретную информацию.
Если даже это не поможет, вы можете, как предлагает предыдущий документ, прочитатьо команде require
, чтобы помочь вам понять, как она загружается в первую очередь.Это должно помочь вам справиться с этим, возможно, перебирая @INC
, то есть папки, которые Perl будет искать для поиска файлов, которые будут require
d.