> Another school of thought would be that "Dog" alone would be > considered ambiguious and so we would just alias far enough to be > clear, like this: > > Dog => Ambiguity Error! > Dog-1.2.1 => Dog-1.2.1-cpan:JRANDOM > Dog-0.0.2 => Dog-0.0.2-cpan:LWALL > > Of course, this means that if I also load "Dog-1.2.1-cpan:LWALL" that > the table looks like this: > > Dog => Ambiguity Error! > Dog-1.2.1 => Ambiguity Error! > Dog-0.0.2 => Dog-0.0.2-cpan:LWALL > > And the user is now forced to add the cpan id to get Dog-1.2.1. I am > not sure how strict @Larry wants this to be.
NB: Dog-*-cpan:LWALL and Dog-*-cpan:JRANDOM, as well as *-*-cpan:LWALL are also needed for entry into the mix because if there's only one module loaded that is signed by cpan:LWALL, that should be sufficient disambiguation for the parser. (How maintainable that is, I'll leave as an exercise for the reader.) Rob