【问题标题】:Is there a way to get the version from META6.json in Perl6 module code?有没有办法从 Perl6 模块代码中的 META6.json 获取版本?
【发布时间】:2019-03-26 16:19:34
【问题描述】:

我想做这样的事情:

die "Fatal error: application version $MY-APPLICATION-VERSION"

由于 Perl6 模块不能假定与它打包在一起的文件的相对位置(例如,已安装的模块都放在一个平面目录结构中)我不能只做$?FILE.IO.add("../META6.json").slurp。有没有办法在可能安装或未安装的 Perl6 应用程序/模块中获取 META6.json 中声明的版本?

【问题讨论】:

    标签: raku


    【解决方案1】:

    从 rakudo 开始,v2019.03 模块可以通过 $?DISTRIBUTION 访问用于加载它的 Distribution 对象。这允许以下操作:

    unit module My::Module;
    
    BEGIN my $VERSION = $?DISTRIBUTION.meta<version>;
    use My::SubModule:ver($VERSION); # ensure we only ever use the version included in this distribution
    
    die "Fatal error: application version $VERSION"
    

    【讨论】:

      猜你喜欢
      • 2012-02-27
      • 1970-01-01
      • 2019-08-31
      • 2021-01-20
      • 2021-02-07
      • 2014-09-26
      • 2013-09-27
      • 2021-02-26
      相关资源
      最近更新 更多