【问题标题】:Why do I get 'divide by zero` errors when I try to run my script with Rakudo?当我尝试使用 Rakudo 运行脚本时,为什么会出现“除以零”错误?
【发布时间】:2011-03-09 19:30:27
【问题描述】:

我刚刚构建了 Rakudo 和 Parrot,以便我可以玩它并开始学习 Perl 6。我下载了 Perl 6 书并愉快地输入了第一个演示程序(网球锦标赛示例)。

当我尝试运行程序时,出现错误:

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

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

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

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

#!/home/daotoad/rakudo/perl6

use v6;
say "Hello nurse!";

但是,如果我从 rakudo 目录运行它,它就可以工作。

听起来我需要设置一些环境变量,但我不知道它们是什么以及赋予它们什么值。

有什么想法吗?

更新:

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

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

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

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

   $ ./perl6 hello.pl

重读后,我发现在构建目录之外运行脚本之前需要安装 rakudo 的参考:

一旦构建,Rakudo 的make install 目标将安装 Rakudo 及其库到 Parrot 安装中,用于 创造它。在执行此步骤之前,“perl6”可执行文件 上面由make 创建的只能从 Rakudo 的构建目录。执行make install 后, 安装的可执行文件可以从任何目录运行(只要 用于创建它的 Parrot 安装保持不变。

看来我需要安装 rakudo 才能使用 Perl 6。

下一个问题是,rakudo 安装在哪里? README 说明了用于构建的 Parrot 安装。

我在构建中使用了--gen-parrot 选项,看起来它安装到rakudo/parrot-install 中。所以 rakudo 会被安装到我的rakudo\parrot-install 中吗?

阅读Makefile,支持这个结论。我运行了make install,它确实安装到了parrot_install

对于 Perl6 的新手来说,构建/安装过程的这一部分是不清楚的。我会看看我是否可以提供一个文档补丁来澄清事情。

在我的头顶:

  1. 强调在构建之外运行脚本之前运行make install。此要求目前隐藏在段落中间,浏览文档的人(我)很容易错过。

  2. 明确声明 --gen-parrot 会将 perl6 安装到 parrot_install 目录中。

【问题讨论】:

    标签: raku rakudo


    【解决方案1】:

    你在 Rakudo 中运行过make install 吗?

    必须这样做才能在其构建目录之外使用 Rakudo(这就是 README 和 http://rakudo.org/how-to-get-rakudo 都告诉你这样做的原因。

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

    【讨论】:

    • 感谢您的回答。我更新了我的问题以给出更大的回应。
    【解决方案2】:

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

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

    我希望你发现这一点比以前更清楚。如果您仍有改进的余地,请考虑向 rakudobug@perl.org 提交补丁。

    【讨论】:

    • 我可以接受你的两个答案吗?谢谢你,你所有的工作都非常感谢。面对 FUD 和反对者的恶性环境,您和 perl6 团队的其他成员正在做着惊人的工作。向大家致以最诚挚的谢意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多