Some questions:
-----
Can we get an AUTOCLASS/AUTOCLASSDEF hook pair?
-----
How does one create a class with a hyphen in the middle of it? If I say:
use Foo-Bar;
will it complain about not finding a Bar version of Foo? Would I instead need to say:
use 'Foo-Bar'; use Foo\-Bar; use ('Foo-Bar'); $x = 'Foo-Bar'; use $x;
btw, that last one would be really handy sometimes, but for other reasons.
-----
If we do:
use Dog-1.2.3; use Dog-2.0.1; my Dog $spot;
What do we get? Okay, I know, an error message, but is it on line 2 or line 3? Can we instead do something like:
use Dog-1.2.3; use Dog-2.0.1 is rename(newDog); my newDog $spot;
-----
There needs to be some definition of what happens when more than one module matches a given wildcard in 'use'.
Something like: 1. Throw a warning 2. Pick the highest version, then the earliest source in the alphabet
of course, there should be a way to flag it to work in other ways, so some project could have a standard:
use ($^name ~~ /^Project::/)-(Any)-TPFBundle;
meant to include all the modules made thus far. And yes, I can come up with times when this would be useful.
-----
I see some utility in having an optional sub-source or version code thingy. Something like:
use Dog-(Any)-(Any)-Stable; use Canine-(Any)-(Any)-Development;
-----
Can we get a hook that gets called when 'use' fails to find module locally? I see potential for:
use AutoCPAN; use Some::Module::Not::Currently::Loaded;
hmm. that doesn't work, since you typically won't be including the cpan author code if you don't have to.
CPAN, or some other public source would be a definate security risk, and thus to be discouraged, but it should be possible to write the thing. I've heard of sites who had massively distributed mod_perl servers, where all the code past a simple stub was stored in a central RDBMS. Made releases and version control much nicer.
-----
By saying
#!/usr/bin/perl6
forces Perl 6, I assume you mean : "The compiler sees /:i ^#! .* perl6/ on the first line".
-----
-- Rod Adams