我想从我的脚本中设置 Raku 和 Inline::Perl5 模块的库加载路径,同时最大限度地减少运行时影响。
我尝试更换
use lib $*PROGRAM.resolve.parent(2) ~ '/lib';
use lib $*PROGRAM.resolve.parent(2) ~ '/Inline/perl5';
Run Code Online (Sandbox Code Playgroud)
它适用于以下内容:
BEGIN {
my $root = $*PROGRAM.resolve.parent(2);
use lib "$root/lib";
use lib "$root/Inline/perl5";
Run Code Online (Sandbox Code Playgroud)
以节省第二次.resolve.parent(2)通话。这不起作用,因为在评估行时$root似乎未定义。use lib
use lib是编译时间。当你写的时候
BEGIN {
my $root = $*PROGRAM.resolve.parent(2);
use lib "$root/lib";
}
Run Code Online (Sandbox Code Playgroud)
里面use lib "$root/lib"的a本质上BEGIN是编译-编译时间。你需要写的是
BEGIN {
BEGIN my $root = $*PROGRAM.resolve.parent(2);
use lib "$root/lib";
}
Run Code Online (Sandbox Code Playgroud)
或者更简洁地说
BEGIN my $root = $*PROGRAM.resolve.parent(2);
use lib "$root/lib";
Run Code Online (Sandbox Code Playgroud)