On Wed, Oct 19, 2005 at 09:33:39AM -0400, Stevan Little wrote:
> However, this brings up an issue I was thinking about. Take this code
> for instance:
> use Cat-0.0.1;
> use PetStore;
> my Cat $kitty .= new();
> --- in PetStore.pm ---
> use Dog;
> use Cat-0.0.5;
> Which Cat is used? I can see several options:
> 1) Cat-0.0.1 is used since it is in the local scope, so clearly the
> users choice.
> 2) Cat-0.0.5 is used since it is loaded after Cat-0.0.1.
> 3) An Ambiguity error is thrown because "Cat" is not specific enough.
I would be _highly_ surprised if my $kitty wasn't a Cat-0.0.1
(assuming these auto aliases happen). Which Cat is available to the
programmer is a lexical property that shouldn't be invalidated because
some other module decided to use a different Cat. That would *so* be
action at a distance.
Jonathan Scott Duff