On 6/11/19 9:11 PM, Bruce Gray wrote:
On Jun 11, 2019, at 5:39 PM, ToddAndMargo via perl6-users <[email protected]> wrote: Hi All, I need one liner help importing a module sub This works: perl6 -e 'use lib "/home/linuxutil/p6lib"; use PrintColors :PrintBlue; PrintBlue( "Blue\n" );' Blue This does not: perl6 -I /home/linuxutil/p6lib -M "PrintColors :PrintBlue" -e 'PrintBlue( "Blue\n" );' Could not find PrintColors :PrintBlue at line 1 in: What did I do wrong, this time? Many thanks, -TResults of my research: In Perl 5, the code to use a module *and* select its imports, use This::Module qw<foo bar>; can rephrased in a one-liner as: -MThis::Module=foo,bar The Perl 6 docs show a one-liner option for `use`: -M This::Module , but shows no version that lets you select the import. In src/Perl6/World.nqp, method do_pragma_or_load_module has code to start 'Performing imports' right after loading the module. (you can see the progress by setting RAKUDO_MODULE_DEBUG, as in `RAKUDO_MODULE_DEBUG=1 perl6 -MTest -e 'say 42'`) I see no tests exercising this part of the code, and when I experiment, any deviation I can think to try from `-M FooModule` results in failure in self.load_module, as whatever should recognize some divider between ModuleName and ModuleImportList fails to do so, so `-MFoo=Bar` tries to load a module with the 7-char name "Foo=Bar". Based on the call to `self.do_import`, I think that Rakudo is intended to support something like `-MThis::Module=foo,bar`, but I cannot tell what exact form the import separator should take, so cannot tell if we are just missing the correct syntax, or if there is a bug in Rakudo. Either way, there are docs and tests that need to be added. EOUTOFTIME, this email stands alone, no bugs filed. — Bruce Gray (Util of PerlMonks)
$ perl6 -I /home/linuxutil/p6lib -M PrintColors::PrintBlue -e 'PrintBlue( "Blue\n" );'
===SORRY!=== Could not find PrintColors::PrintBlue at line 1 in:
