On Sun, Jan 31, 2010 at 06:35:14PM +0100, Carl Mäsak wrote: > I found two ways. Either one uses C<augment> (the language construct > formerly known as C<is also>): > > class B {} > class A { sub foo { B::bar } } > augment class B { sub bar { A::foo } } > > ...or one may use the C<::> notation to index a type using a string value: > > class A { sub foo { ::<&B::bar>() } } > class B { sub bar { A::foo } }
There's a third way: class B { ... } # introduce B as a class name without definition class A { sub foo { B::bar } } class B { sub bar { A::foo } } The first line is a literal "..." in the body of the class -- it indicates that we're only declaring the name as being a type, and that something else will fill in the details later. Pm