<?xml version="1.0" encoding="windows-1252"?>
<node id="220964" title="Re: Class::InsideOut - yet another riff on inside out objects." created="2002-12-18 17:14:10" updated="2005-07-27 13:06:02">
<type id="11">
note</type>
<author id="80322">
John M. Dlugosz</author>
<data>
<field name="doctext">
Without regard to how it's actually implemented, I want to say that I like the idea of using the :Field attribute to declare instance data.&lt;P&gt;
As for the source filter, I wonder if maybe you could use AUTOLOAD to generate the accessors when/if they are first used?  The :Field attrib would store a reference to the hash and its name, and the generator would look it up to see if that name existed, without worrying about the scope of the underlying declared hash.&lt;P&gt;
A benifit of the inside-out approach in general is that names of instance data can be reused in derived classes without conflict.&lt;P&gt;
I don't understand your DESTROY.  You define $class on one line to be my blessed class, then define it again on the next line to be every key in the Values hash.  Isn't this going to destroy &lt;I&gt;all&lt;/I&gt; classes?  That is, don't you want a single $values=$Values{$class}, rather than iterating over all $Values?&lt;P&gt;
&amp;mdash;John</field>
<field name="root_node">
220776</field>
<field name="parent_node">
220776</field>
</data>
</node>
