Larry Wall wrote: > Well, we can't use -> because we're using that for something else. > But it's certainly true that we'll have to have some mechanism for > disambiguating Color.green from Blackberry.green. After all, > > Blackberry.green == Color.red > > Or maybe it's > > Blackberry::green == Color::red
[...] > I don't know the syntax for > disambiguating on the green end yet. Maybe one of > > $foo ~~ Color::green > $foo ~~ Color.green > $foo ~~ Color[green] > > Or maybe something else. How about a single colon? Color:green This is the same syntax employed in XML namespaces and URIs, for example: <xml xmlns:color="http://example.com/xml/color.xsd"> <color:green/> </xml> Don't tell me, we can't use : because we're using that for something else. :-) Presumably, the parser could be smart enough to entuit the role on either side of a comparison if the other is specified. $foo:Color ~~ Color:green $foo ~~ Color:green # assumes $foo:Color $foo:Color ~~ green # assumes Color:green > I'm thinking the ordinary method > > $foo.Color > > implies > > $foo.as(Color) What if your $foo object has a regular method called Color? Would it get called in preference? A