[CDBI] Class::DBI and DESTROY
perrin at elem.com
Thu Nov 10 14:16:44 GMT 2005
On Thu, 2005-11-10 at 13:15 +0000, Steven Mackenzie wrote:
> I have tried to add some new methods to one of my Class::DBI classes,
> but they require state to be preserved for each instance. I didn't want
> to just stash my state in the cdbi object hash (it didn't work anyway),
> so I'm using a variation of "Perl Best Practices" inside out classes.
I recommend you go back to shoving thing in the Class::DBI hash. It's a
lot easier and you are writing something for a specific version of
Class::DBI on your own system. Of course if you were planning to make
this into a CPAN module, you should think twice about doing it this way,
since other people will have different versions.
> But DESTROY is being
> called far more often than I expected.
This is the opposite of the complaint that most people have with Perl --
that DESTROY is never called.
> Can anyone share some insight in to my problem (why is DESTROY being
> called so often?), or offer a better approach for me?
Maybe cdid is not really a unique key of your class, so one CD's DESTROY
cleans up another one? Maybe you have a scoping problem with %
card_writer_of. I'm pretty confident that DESTROY is not being called
on objects that are still in scope.
More information about the ClassDBI