如果我有这样的东西:
在一些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
,那么我如何才能获得实际路径?
最佳答案
内置哈希 %INC
包含已使用 require
或 do
加载的模块文件的解析路径
Test::A::Foo
的 pm
文件的位置在 $INC{'Test/A/Foo.pm'}
有点像
$INC{ (__PACKAGE__ =~ s|::|/|gr) . '.pm' }
应该做你需要的
关于perl - 如何动态获取模块的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409284/