[CDBI] Re: construct sucks.

Perrin Harkins perrin at elem.com
Mon Aug 28 04:35:02 BST 2006


Ryan Tate wrote:
> Here is my proposed change to _init, which I filed on RT by mail:
> 
> sub _init {
>        my $class = shift;
>        my $data  = shift || {};
>        my $key   = $class->_live_object_key($data);
>        my $obj;
>        if ($obj = $Live_Objects{$key}) {
>          $obj->_attribute_store(%$data);
>        }
>        else {
>          $obj = $class->_fresh_init($key => $data);
>        }
>        return $obj;
> }

The potential problem with this change (and I think this was actually 
discussed earlier on the list) is that somewhere else you may have 
already updated one of those keys and not saved it yet, so you'd be 
overwriting that update here.  You could check to see if the keys have 
been changed before writing the new data to the object, although this 
will slow it down.

- Perrin



More information about the ClassDBI mailing list