如果你已经 use '或者 require 一个模块,文件的位置在 %INC 。
use
require
%INC
$ perl -MJSON -E 'say $INC{"JSON.pm"}' /opt/share/perl5/site_perl/5.16/JSON.pm
__FILE__ 返回用于检索正在执行的文件的路径。这意味着您可以使用以下内容:
__FILE__
use File::Basename qw( dirname ); dirname(__FILE__)
如果使用符号链接加载文件,那将失败,因此通常首先想要解析符号链接。
use Cwd qw( abs_path ); use File::Basename qw( dirname ); dirname(abs_path(__FILE__))
这对于脚本比对模块更重要,因为用于加载模块的符号链接的几率非常低。
警告:如果自模块加载后CWD发生更改,这些可能会失败。