【问题标题】:How do I load a module relative to script in Raku with Raku equivalent of FindBin如何使用 Raku 中的 FindBin 等价物在 Raku 中加载相对于脚本的模块
【发布时间】:2020-08-09 09:47:49
【问题描述】:

假设我在一个目录中有 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.rakucd d1; rakudo p.raku

【问题讨论】:

  • 如果a search of SO for "[raku] relative module" 中的任何 SO 都没有帮助,请在您的问题中添加详细信息,解释原因。谢谢。
  • @raiph 改写了它
  • $*PROGRAM 并使用 lib?
  • 使用库 $*PROGRAM.dirname;
  • @raiph :是的,我想接受它。但我不能在 2 天前完成,因为我自己回答了。如果其他人想回答我可以删除我的,然后直接接受。

标签: module raku


【解决方案1】:

正如 ValleLukas 解释的那样:

use lib $*PROGRAM.dirname
use Mod;

可以使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2022-08-04
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2020-11-04
    相关资源
    最近更新 更多