如何获取模块的另一个文件的路径?
我试过这种方式,但我不知道从哪里得到$here
,我不知道如果我有$here
它是否会起作用?
use v6;
unit class Aaa::Bbb::Ccc;
my $here = '.../lib/Aaa/Bbb/Ccc.pm6'.IO;
my $bin = $here.parent.parent.parent.add( 'bin' ).add( 'app' );
use Pod::Load;
my $pod = load( $bin );
# use the $pod
当我尝试这个时,$pod
是空的:
use Pod::Load;
my $pod = load( $*PROGRAM );
say $pod.perl; # $[]
更新:正如@ugexe指出的那样,如果您打算安装模块,这将无法正常工作。
$?DISTRIBUTION似乎是一个很好的解决方案。
否则另一种方法是使用$?FILE变量。如果要在程序中的其他位置使用它,则需要从模块中导出:
unit module MyModule;
our sub myDIR() {
$?FILE.IO.dirname;
}
use MyModule;
myDIR()~"/relative/path/to/somefile