On Thu, Oct 16, 2008 at 02:56:28PM +1100, Timothy S. Nelson wrote: > Hi all. I'm working on the code for trees that I keep talking about, > and I have code that somewhat resembles the following: > > role Tree::Node does Array { > has Tree::Node @!children handles <Array List Container>; > } > > The intent of this code is that, if you treat the Tree::Node as an > array, you're operating on its children. I'm sure there are obvious bugs > in that code that I'd be happy to hear about, but my question at the > moment is, I want to be able to intercept calls that put things into the > array and pull them out, and perform code at that time. For example, I'd > like it if > > $node = Tree::Node->new(); > $othernode = Tree::Node->new(); > $node[0] = $othernode; > > ...would allow me to operate on $othernode, so that I could ensure that > they belong to the same tree, for example. Is there a way I can do that?
You have to write your own wrapper methods for that. Delegation does not mix well with micromanagement. :) Larry