代码之家  ›  专栏  ›  技术社区  ›  daotoad

当我尝试使用rakudo运行脚本时,为什么会出现“被零除”错误?

  •  4
  • daotoad  · 技术社区  · 14 年前

    我刚刚建立了rakudo和parrot,这样我就可以玩它并开始学习perl 6。我下载了Perl6的书,很高兴地输入了第一个演示程序(网球锦标赛的例子)。

    当我尝试运行程序时,我得到一个错误:

    Divide by zero
    current instr.: '' pc -1 ((unknown file):-1)
    

    我有我的 perl6 生成目录中的二进制文件。我在rakudo build目录下添加了一个脚本目录:

      rakudo
      |- perl6
      \- scripts
         |- perlbook_02.01
         \- scores
    

    如果我尝试从脚本目录运行一个简单的hello world脚本,我会得到相同的错误:

    #!/home/daotoad/rakudo/perl6
    
    use v6;
    say "Hello nurse!";
    

    但是如果我从 rakudo 它工作的目录。

    听起来好像有一些环境变量需要设置,但是我对它们的存在和要给它们提供的值感到迷茫。

    有什么想法吗?

    更新:

    我现在不想安装rakudo,我只想从build目录运行一些东西。这将允许我在尝试不同的Perl6构建时尽量减少对系统的更改(Rakudo*很快就退出)。

    自述文件鼓励我认为这是可能的:

       $ cd rakudo
       $ perl Configure.pl --gen-parrot
       $ make
    

    这将在 当前(rakudo)目录。然后可以从运行程序 使用如下命令生成目录:

       $ ./perl6 hello.pl
    

    在重读之后,我发现了一个事实,即在构建目录外运行脚本之前,必须安装rakudo:

    一旦建成,Rakudo's make install 目标将安装Rakudo 把它的图书馆放到以前用来 创造它。在执行此步骤之前,“perl6”可执行文件 创建的 make 以上只能可靠地从 Rakudo的构建目录。后 制作安装 执行, 安装的可执行文件可以从任何目录运行(只要 用来制造它的鹦鹉装置仍然完好无损。

    所以看起来我需要安装rakudo来使用perl 6。

    下一个问题是,Rakudo安装在哪里?自述说进入鹦鹉安装用来建造。

    我用过 --gen-parrot 我的版本中的选项,它似乎安装到 rakudo/parrot-install . 所以Rakudo将安装到我的 rakudo\parrot-install ?

    读取makefile,支持这个结论。我跑 制作安装 它确实安装在 parrot_install .

    对于Perl6的新手来说,构建/安装过程的这一部分还不清楚。我会看看是否能找到一个文档补丁来澄清问题。

    在我的头顶上:

    1. 强调跑步 制作安装 在生成外部运行脚本之前。这个要求目前埋在一段中间,很容易被浏览文档的人忽略。

    2. 明确说明 ——鹦鹉 将Perl6安装到 鹦鹉螺安装 目录。

    2 回复  |  直到 6 年前
        1
  •  5
  •   moritz    14 年前

    你跑了吗? make install 在Rakudo?

    必须这样做才能在其构建目录之外使用rakudo(这就是为什么自述和 http://rakudo.org/how-to-get-rakudo 告诉你去做。

    不用担心,默认安装位置是本地的(在rakudo目录的parrot_install/bin/perl中)。

        2
  •  3
  •   moritz    14 年前

    为了响应您的更新,我现在更新了自述文件:

    http://github.com/rakudo/rakudo/commit/261eb2ae08fee75a0a0e3935ef64c516e8bc2b98

    我希望你比以前更清楚。如果您仍有改进空间,请考虑向rakudobug@perl.org提交补丁。

    推荐文章