如果我有这样的事情:
在一些script.pl中:
#code here
my $result = $class->foo();
# extra code here
Run Code Online (Sandbox Code Playgroud)
在班级的模块中:
package Test::A::Foo;
use parent Test::A;
sub foo {
# code here
}
Run Code Online (Sandbox Code Playgroud)
Test::A::Foo
当我在模块中执行代码时,如何获取所在的确切文件路径?它不是工作目录,因为我正在运行script.pl
并且调用它$class->foo
,所以我如何获得实际路径?
内置哈希%INC
包含已使用require
或加载的模块文件的已解析路径do
pm
文件的位置Test::A::Foo
在$INC{'Test/A/Foo.pm'}
就像是
$INC{ (__PACKAGE__ =~ s|::|/|gr) . '.pm' }
Run Code Online (Sandbox Code Playgroud)
应该做你需要的