For example, there is a basic script
and a module used by this script.

main.pl
----------------------
#!/usr/bin/perl6
use v6;
need Hello;
my $h = Hello.new();
$h.hello('world');
$h.hello('sun');

Hello.pm
-----------------------
#!/usr/bin/perl6
use v6;

class Hello;

method hello ($a) {
    say 'Hello, ' ~ $a ~ '!';
}

---------------------

If you compile Hello.pm to Hello.pir and remove Hello.pm,
PIR module does not load. Why?
[Perl6 2011.04, parrot 3.3.0]

===SORRY!===
Unable to find module 'Hello' in the @*INC directories.
(@*INC contains:
  /home/carmen/.perl6/lib
  /opt/rakudo-star-2011.04/install/lib/parrot/3.3.0/languages/perl6/lib
  .)

Also, if you look at the (pir) code for any compiled script,
it becomes clear that it uses some library called "perl6_ops".
Does this mean that the file can not be run on a machine
where you have installed parrot but have not installed perl6?

Also, I do not understand, is there a way to build a project
from a large number of classes and roles (that placed
in different files and folders) into a single executable
portable pbc-file.
This can be very useful for scripting in desktop applications.
I pinned my hopes on pbc_merge, but it seems compiled
modules do not work together.

Reply via email to