> On Jun 12, 2019, at 1:22 AM, ToddAndMargo via perl6-users 
> <perl6-users@perl.org> wrote:
—snip--
> $ perl6 -I /home/linuxutil/p6lib -M PrintColors::PrintBlue -e 'PrintBlue( 
> "Blue\n" );'
> ===SORRY!===
> Could not find PrintColors::PrintBlue at line 1 in:

I see that I introduced a point of confusion.

In Perl 5 and Perl 6, double-colons are a namespace separator.
The module Audio::Taglib::Simple is a single module, but can be thought of as 
"the Simple module, of possibly-a-bunch-of Taglib modules, of the overall 
family of Audio modules".
In the same way, my name is "Bruce Gray" and I am an individual, but can be 
thought of as "the Bruce person, of the Gray family".
This is all less evident when browsing modules.perl6.org than Perl 5's CPAN, 
because the CPAN sheriffs pressure its module authors to use multi-level 
naming, and modules.perl6.org is more of the Wild West where single-level 
naming (Balidor, CCChart, ECMA262Regex, ScaleVec) is common.
( My talk on variable namespaces is "The Why of My()": 
https://www.youtube.com/watch?v=SA4mUs3Ro98 )

All that to say, that of all the ways Perl 6 or Rakudo might intend us to 
indicate the arguments to a `use` statement in a one-liner, I am sure that way 
cannot ever be with a double-colon.
I was using double-colon in my made-up module names just because I thought it 
would be clearer; to my Perl 5 eyes, Foo::Bar::Baz is always a module name.

The fact that a single leading colon designates a import tag (or "group") 
further clouds the issue.

-- 
Bruce Gray (Util of PerlMonks)

Reply via email to