当我尝试使用rakudo运行脚本时,为什么我会得到“零”错误?

StackOverflow https://stackoverflow.com/questions/3144043

  •  01-10-2019
  •  | 
  •  

我刚刚建立了Rakudo和Parrot,以便可以玩它并开始学习Perl 6。

当我尝试运行程序时,我会发现一个错误:

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,我宁愿只从构建目录中运行内容。这将使我在尝试不同的perl6构建时将我的系统更改保持最小(Rakudo *很快就会出现)。

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

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

这将在当前(rakudo)目录中创建一个“ perl6”或“ perl6.exe”。然后可以使用以下命令从构建目录运行程序:

   $ ./perl6 hello.pl

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

一旦建造,Rakudo的 make install Target将将Rakudo及其库安装到用于创建它的鹦鹉安装中。在执行此步骤之前,“ perl6”可执行 make 上面只能可靠地从Rakudo的Build Directory的根部运行。后 make install 执行,可以从任何目录(只要用于创建它的鹦鹉安装保持完整的鹦鹉安装)即可运行安装的可执行文件。

因此,看来我需要安装rakudo来使用Perl 6。

下一个问题是,在哪里安装了rakudo?雷德姆说,用于构建的鹦鹉安装中。

我用了 --gen-parrot 我的构建中的选项,看起来像安装到 rakudo/parrot-install. 。因此,rakudo将安装到我的 rakudo\parrot-install?

阅读makefile,支持这个结论。我跑了 make install, ,并且确实安装了 parrot_install.

对于Perl6的新手来说,构建/安装过程的这一部分尚不清楚。我会看看是否可以使用文档补丁来澄清内容。

我的头顶:

  1. 强调跑步 make install 在构建外运行脚本之前。目前,这一要求被埋葬在段落的中间,可以通过浏览文档(我)的人很容易错过。

  2. 明确指出 --gen-parrot 将安装perl6 parrot_install 目录。

有帮助吗?

解决方案

你跑了吗? make install 在rakudo?

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

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

其他提示

为了响应您的更新,我现在更新了README:

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

希望您发现比以前更清晰。如果您仍然看到改进的空间,请考虑将补丁提交给rakudobug@perl.org。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top