如何获取模块的另一个文件的路径?
我尝试了这种方式,但我不知道从哪里获取 $here
并且我不知道如果我有 $here
是否会起作用?
use v6;
unit class Aaa::Bbb::Ccc;
my $here = '.../lib/Aaa/Bbb/Ccc.rakumod'.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.raku; # $[]
最佳答案
不存在“模块的另一个文件”这样的东西。一个模块仅代表一个文件;一个发行版代表多个模块,因此代表多个文件。此外,模块不能假设它是从文件系统加载的——它可能会从 tar file 加载到内存中。或socket ,如果一个模块尝试访问例如"../MyOtherModule.rakumod".IO
显然会失败。
您可以安全地做的是获取同一发行版中任何模块的内容:
unit class Aaa::Bbb::Ccc;
my $bin-code = $?DISTRIBUTION.content("bin/app").open.slurp;
关于module - 如何获取模块的不同文件的文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55864667/