On Thu, Oct 27, 2005 at 05:37:13AM -0400, Rob Kinyon wrote:
: Will I be able to do something like:
: 
: package Foo;

Hmm, you just started in Perl 5 mode.

: $*VERSION = 1.3.2;

Perl 5 would get confused here, so I'm presuming Perl 6.  But Perl 6
isn't likely to let you override the global run-time Perl version.

: use Foo-1.3.1;

That I think I understand.

: role My::Foo { does Foo; ... }

Okay, My::Foo does Foo here.  Presumably it must "do" the Foo alias
that the use just installed.  And presumably the Foo you just used
is a role that can be "done".  Certainly you can't "do" the global
package Foo, assuming that's what your original package declared.

: alias My::Foo -> Foo; # Or whatever the syntax should be

I have no clue where you're intending to install that alias.
Are you trying to install a *Foo alias?  A bare Foo is going to first
find the local alias to the Foo you used, and that hides the global
Foo that it would have found otherwise.  I suspect you're trying to
say

    *Foo := My::Foo;

: And, in my other code, "use Foo;" will DWIM?

I don't know quite what you mean, so I don't know if it'll do what
you mean.  If you're trying to establish a policy that defaults a
particular name to a particular version, the library interface will
probably give you a more straightforward way to set that up.

Larry

Reply via email to