module - 如何使用 Raku 中的 FindBin 等价物在 Raku 中加载相对于脚本的模块
问题描述
假设我在一个目录中有 2 个文件
p.pl
Mod.pm
在 perl5 中,我可以通过以下方式从 p.pl 加载模块 Mod.pm:
use FindBin qw($Bin);
use lib "$Bin";
...
use Mod;
我想知道Raku
等价物是什么(如果文件是 p.raku 和 Mod.rakumod)?
我想要完成的是加载相对于脚本的模块。
- 我想在启动脚本之前不设置环境变量来执行。
- 我不想用 zef 安装模块。
- 我不想被迫将 cwd 设置为脚本目录,这意味着如果 p.raku 和 Mod.rakumod 在目录 d1 中,而目录 d1 又在目录 d0 中,我希望能够运行
cd d0; rakudo d1/p.raku
以及cd d1; rakudo p.raku
解决方案
正如 ValleLukas 解释的那样:
use lib $*PROGRAM.dirname
use Mod;
可以使用。
推荐阅读
- javascript - 谁能解释一下为什么答案是 { name : 'Linda'};
- javascript - 将 fetch 与 express 和 ejs 一起使用会给出 400 个错误请求以及 json 中的意外令牌 <
- visual-studio-code - 尝试在本地启动模式下连接到 vscode-hack 调试器时,可视代码调试器适配器立即死亡
- html - 如何使 flex-wrap 项目内联而不是块?
- android - 使动画容器的行为类似于颤动中的折叠工具栏
- c - 仅使用 SDL2 的 C 程序有时会绘制 Rect
- android - 从特定标签获取数据作为响应(Kotlin、Retrofit)
- python - 如何对包含随机 x、y、图像的列表进行 blit
- .net - SignalR 以外的选项通过.Net Core 将信息推送到特定客户端?
- reactjs - 在功能性反应打字稿组件中有更多 UseState 好吗?