5

我刚刚构建了 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”或“perl6.exe”可执行文件。然后可以使用以下命令从构建目录运行程序:

   $ ./perl6 hello.pl

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

一旦构建完成,Rakudo 的make install目标会将 Rakudo 及其库安装到用于创建它的 Parrot 安装中。在执行此步骤之前,make上面创建的“perl6”可执行文件只能从 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. 明确说明 with--gen-parrot会将 perl6 安装到parrot_install目录中。

4

2 回答 2

5

你跑过乐道make install吗?

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

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

于 2010-06-29T22:17:33.893 回答
3

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

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

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

于 2010-06-30T10:02:37.180 回答