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.