Rakudoでスクリプトを実行しようとするときに、「ゼロ」エラーで「分割」を取得するのはなぜですか?
質問
RakudoとParrotを構築して、Perl 6の学習を開始できるようになりました。Perl6の本をダウンロードし、最初のデモプログラム(Tennis Tournamentの例)で喜んで入力しました。
プログラムを実行しようとすると、エラーが発生します。
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をインストールしたくないので、Buildディレクトリから物事を実行するだけです。これにより、さまざまなPerl6ビルドを試してみると、システムへの変更を最小限に抑えることができます(Rakudo *はまもなく外出します)。
readmeファイルは、これが可能だと思うように勧めました。
$ cd rakudo $ perl Configure.pl --gen-parrot $ make
これにより、現在の(rakudo)ディレクトリに「perl6」または「perl6.exe」実行可能が作成されます。次のようなコマンドを使用して、プログラムをビルドディレクトリから実行できます。
$ ./perl6 hello.pl
読み直すと、ビルドディレクトリの外でスクリプトを実行する前にRakudoをインストールする必要があるという事実への言及が見つかりました。
一度構築されると、rakudo's
make install
ターゲットは、Rakudoとそのライブラリを、作成するために使用されたオウムのインストールにインストールします。このステップが実行されるまで、によって作成された「Perl6」実行可能make
上記は、Rakudoのビルドディレクトリのルートからのみ確実に実行できます。後make install
実行されると、インストールされた実行可能ファイルは、任意のディレクトリから実行できます(作成に使用されたオウムのインストールがそのままである限り)。
そのため、Perl 6で遊ぶにはRakudoをインストールする必要があるようです。
次の質問は、Rakudoがどこにインストールされるのかということです。 readmeは、構築に使用されるオウムインストールにあると言います。
私は使用しました --gen-parrot
私のビルドのオプション。 rakudo/parrot-install
. 。そのため、Rakudoは私にインストールされます rakudo\parrot-install
?
Makefileを読むと、この結論が支持されます。走った make install
, 、そしてそれはインストールしました parrot_install
.
ビルド/インストールプロセスのこの部分は、Perl6への初心者にとっては不明です。物事を明確にするためにドキュメントパッチを使用できるかどうかを確認します。
私の頭の上から:
ランニングを強調します
make install
ビルド以外でスクリプトを実行する前に。この要件は現在、段落の途中に埋め込まれており、ドキュメント(私)をざっと見ている人が簡単に見逃すことができます。それを明示的に述べています
--gen-parrot
perl6をにインストールしますparrot_install
ディレクトリ。
解決
走りましたか make install
ラクードで?
ビルドディレクトリの外でrakudoを使用できるようにする必要があります(それが、readmeと http://rakudo.org/how-to-get-rakudo それをするように言ってください。
心配しないでください、デフォルトのインストール場所はローカルです(Rakudoディレクトリ内のparrot_install/bin/perl)。
他のヒント
あなたの更新に応じて、私は今readmeを更新しました:
http://github.com/rakudo/rakudo/commit/261eb2ae08fee75a0a0e3935ef64c516e8bc2b98
以前よりも明確だと思うことを願っています。まだ改善の余地がある場合は、rakudobug@perl.orgにパッチを送信することを検討してください。