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

标签 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,那么我如何才能获得实际路径?

最佳答案

内置哈希 %INC 包含已使用 requiredo 加载的模块文件的解析路径

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

有点像

$INC{ (__PACKAGE__ =~ s|::|/|gr) . '.pm' }

应该做你需要的

关于perl - 如何动态获取模块的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24409284/

相关文章:

python - 相当于 Win32::Process::Memory 的 python 进程内存搜索

perl - 如何旋转和压缩 Log4perl 日志文件?

来自文本文件的 Perl 哈希

perl - perl 中的隐式转换

perl - 使用 perlbrew 时如何安装 CPAN 模块?

node.js - 将nodejs模块转换为全局模块

python - 导入错误:没有名为 qgis.core 的模块

python默认字典参数在函数调用之间被缓存

perl - 使用 perl 删除两个注释之间的 html 代码

ruby - 在 Ruby 中创建模块变量