Je viens de construire Rakudo et Parrot pour que je puisse jouer avec et commencer à apprendre Perl 6. J'ai téléchargé le livre Perl 6 et heureusement tapé dans le premier programme de démonstration (l'exemple du tournoi de tennis).Pourquoi est-ce que j'obtiens des erreurs «diviser par zéro» quand j'essaie d'exécuter mon script avec Rakudo?
Lorsque je tente d'exécuter le programme, je reçois une erreur:
Divide by zero
current instr.: '' pc -1 ((unknown file):-1)
J'ai mon perl6
binaire dans le répertoire de construction. J'ai ajouté un répertoire scripts dans le répertoire build Rakudo:
rakudo
|- perl6
\- scripts
|- perlbook_02.01
\- scores
Si je tente d'exécuter même un simple script Bonjour tout le monde de mon répertoire scripts que je reçois la même erreur:
#!/home/daotoad/rakudo/perl6
use v6;
say "Hello nurse!";
Cependant, si je lance depuis le répertoire rakudo
cela fonctionne.
Il semble qu'il y ait des variables d'environnement que je dois définir, mais je ne sais pas quelles sont les valeurs et quelles sont les valeurs à leur donner.
Des pensées?
Mise à jour:
Je préfère ne pas installer Rakudo à ce moment, je préfère courir les choses simplement à partir du répertoire de construction. Cela me permettra de garder mes modifications minimales sur mon système en essayant différentes versions de Perl6 (Rakudo * sera bientôt disponible).
Le fichier README m'a encouragé à penser que cela était possible:
$ cd rakudo $ perl Configure.pl --gen-parrot $ make
This will create a "perl6" or "perl6.exe" executable in the current (rakudo) directory. Programs can then be run from the build directory using a command like:
$ ./perl6 hello.pl
relisant, j'ai trouvé une référence au fait qu'il est nécessaire d'installer Rakudo avant d'exécuter des scripts en dehors du répertoire de construction:
Once built, Rakudo's
make install
target will install Rakudo and its libraries into the Parrot installation that was used to create it. Until this step is performed, the "perl6" executable created bymake
above can only be reliably run from the root of Rakudo's build directory. Aftermake install
is performed, the installed executable can be run from any directory (as long as the Parrot installation that was used to create it remains intact).
il semble donc que je dois installer Rakudo jouer avec Perl 6.
La question suivante est, où Rakudo être installé? README dit dans l'installation de Parrot utilisée pour construire. J'ai utilisé l'option --gen-parrot
dans ma construction, qui ressemble à l'installation dans rakudo/parrot-install
. Donc, rakudo sera installé dans mon rakudo\parrot-install
?
La lecture du Makefile, supporte cette conclusion. J'ai couru make install
, et il a installé dans parrot_install
.
Cette partie du processus de construction/installation n'est pas claire pour un débutant à Perl6. Je vais voir si je peux avec un patch de documentation pour clarifier les choses.
Du haut de ma tête:
Insistez en cours d'exécution
make install
avant l'exécution de scripts en dehors de la construction. Cette exigence est actuellement enterrée au milieu d'un paragraphe et peut être facilement manquée par quelqu'un écrémant les docs (moi).Expliquez clairement que
--gen-parrot
installera perl6 dans le répertoireparrot_install
.
Merci pour la réponse. J'ai mis à jour ma question pour donner une plus grande réponse. – daotoad