Si ha cargado el módulo, simplemente mire en% INC pero debe hacerlo por nombre de archivo.
say $INC{"Foo/Bar/Baz.pm"};
Si no lo has hecho, puedes utilizar Module :: Util o el programa module_info que viene con Module :: Info.
$ module_info Module::Build
Name: Module::Build
Version: 0.30
Directory: /usr/local/lib/site_perl
File: /usr/local/lib/site_perl/Module/Build.pm
Core module: no
O puede acceder a través de @INC manualmente.
my $module = "Foo::Bar";
# Convert from Foo::Bar to Foo/Bar.pm
my $file = $module;
$file =~ s{::}{/};
$file .= ".pm";
my $path;
for my $dir (@INC) {
$path = "$dir/$file";
last if -r $path;
$path = undef;
}
say defined $path ? "$module is found at $path" : "$module not found";
(una solución de plataforma cruzada totalmente usaría File :: Spec en lugar de unirse con barras.)
Si usted sólo tiene que encontrar un módulo rápido, perldoc -l
funciona bien como se ha mencionado Fayland, pero lo hará no puede encontrar un módulo que no tenga POD.
No olvide que si lo está sacando de% INC, tiene que modificar un poco el nombre del módulo. Tu primer ejemplo debería ser: di $ INC {"Foo/Bar/Baz.pm"} –
¡Tienes razón! Respuesta de la wiki de la comunidad PS, eres libre de editar. – Schwern