当我尝试使用rakudo运行脚本时,为什么我会得到“零”错误?
题
我刚刚建立了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的新手来说,构建/安装过程的这一部分尚不清楚。我会看看是否可以使用文档补丁来澄清内容。
我的头顶:
强调跑步
make install
在构建外运行脚本之前。目前,这一要求被埋葬在段落的中间,可以通过浏览文档(我)的人很容易错过。明确指出
--gen-parrot
将安装perl6parrot_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。