0

Module Foo::Barはのどこかにインストールされてい@INCます。

、then 、then、または@INCを再帰的にチェックする以外に、モジュール自体からこれらのディレクトリにアクセスする方法はありますか?FooBarscriptst

lib/scripts/findmeifyoucan.plたとえば、から特定のスクリプトを呼び出したいと思いますFoo/Bar.pm

4

1 に答える 1

2

%INC関連するコードが存在する場所を見つけるためにを使用して、関連するコードに関連してそれを見つけることができます。

package Foo::Bar;
# this code lives in ...something.../lib/Foo/Bar.pm

package Unrelated;

use File::Spec;
use Foo::Bar;

my $filename = 'Foo/Bar.pm';
(my $libpath = $INC{$filename}) =~ s#/\Q$filename\E$##g; ## strip / and filename
my $script = File::Spec->catfile($libpath, qw(scripts findmeifyoucan.pl));
于 2010-06-18T19:15:36.907 に答える