【发布时间】: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 的新手来说,构建/安装过程的这一部分是不清楚的。我会看看我是否可以提供一个文档补丁来澄清事情。
在我的头顶:
强调在构建之外运行脚本之前运行
make install。此要求目前隐藏在段落中间,浏览文档的人(我)很容易错过。明确声明
--gen-parrot会将 perl6 安装到parrot_install目录中。
【问题讨论】: