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.