perl模块如何找到自己的路径?

Cli*_*ton 7 perl perl-module

我正在创建自己的模块,我们可以调用它X::Y.当然,模块将在文件中X/Y.pm.

让我们说Y需要调用一个外部程序,prog.理想的情况是我只是想放progX,这样我就可以运行X/prog.我想没有硬编码X/prog的完整路径,并且无论当前工作目录集如何,模块都可以工作.

如何从模块内部找到模块的完整路径?或者有更好的方法吗?

Bor*_*din 10

当前正在执行的源文件的完整路径由Perl的__FILE__特殊文字提供.

但是我更希望看到外部程序安装在通常的位置,并且那里的路径在Perl代码中编码为常量或包含在PATH环境变量中.