Wenn Sie das Modul geladen haben, schauen Sie einfach in% INC, aber Sie müssen es nach Dateiname tun.
Wenn nicht, können Sie Module :: Util oder das Modulmodul, das mit Module :: Info geliefert wird, verwenden.
Oder Sie können @INC manuell durchlaufen.
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";
(Eine voll Cross-Plattform-Lösung würde Datei verwenden :: Spec statt mit Schrägstrichen anzuschließen.)
Wenn Sie nur ein Modul schnell finden müssen, perldoc -l
funktioniert gut als Fayland erwähnt, aber es wird finde kein Modul, das kein POD hat.
Vergiss nicht, wenn du es aus% INC herausziehst, musst du den Modulnamen ein bisschen verändern. Ihr erstes Beispiel müsste lauten: Sagen Sie $ INC {"Foo/Bar/Baz.pm"} –
Sie haben Recht! PS Community Wiki-Antwort, Sie können frei editieren. – Schwern