It can store objects to the filesystem or to memory, then retrieve them, transforming them back into objects.
So perhaps you could freeze the object to a scalar, store it in a blob in your database, pull it back out, thaw it, then use it again? I don't know--I've only tested Storable using the filesystem, but it seems logical that you could do the same thing w/ a database.
You might be able to do something like this (untested):
...and now use $unthawed just as you would your original object.use Storable qw/freeze thaw/; use DBI; use Foo; # replace this with your module name my $object = new Foo; my $dbh = DBI->connect('bar', 'foo', 'foo', 'Oracle') or die "Can't connect: ", DBI->errstr; # store it my $sth = $dbh->prepare(<<SQL) or die "Can't prepare: ", $dbh->errstr; insert into objects (id, content) values (?, ?) SQL $sth->execute("foo", freeze $object) or die "Can't execute: ", $dbh->errstr; $sth->finish; # now get it back my $retrieve = $dbh->prepare(<<SQL) or die "Can't prepare: ", $dbh->er +rstr; select content from objects where id = ? SQL $retrieve->execute("foo"); my $content = $retrieve->fetchrow; my $unthawed = thaw $content;
Does this sound like what you want?