如何动态获取模块的路径?

时间:2014-06-25 12:55:41

标签: perl module

如果我有这样的话:

在一些script.pl中:

#code here  
my $result = $class->foo();  
# extra code here  

在班级的模块中:

package Test::A::Foo;  
use parent Test::A;  

sub foo {  
 # code here  
}  

当我在模块中执行代码时,如何获取Test::A::Foo所在的确切文件路径?它不是工作目录,因为我正在运行script.pl并调用$class->foo,那么我该如何获取实际路径呢?

1 个答案:

答案 0 :(得分:6)

内置哈希%INC包含已使用requiredo

加载的模块文件的已解析路径

pm Test::A::Foo文件的位置位于$INC{'Test/A/Foo.pm'}

这样的东西
$INC{ (__PACKAGE__ =~ s|::|/|gr) . '.pm' }

应该做你需要的事情