use Storable qw(freeze thaw);
...
$buffer = freeze($obj);
####
$newInstance = thaw($buffer);
##
##
sub store {
my $obj = shift;
my $key = $obj->key;
$db{$key} = freeze($obj->freeze);
return $key;
}
sub fetchFromDb {
my ($key, $noWake) = @_;
if (my $buf = $db{$key}) {
my $obj = thaw($buf);
return $noWake || !$obj ? $obj : $obj->wake;
}
return undef;
}
##
##
store \%table, 'file';
$hashref = retrieve('file');
##
##
store_fd \@array, \*STDOUT;
nstore_fd \%table, \*STDOUT;
$aryref = fd_retrieve(\*SOCKET);
$hashref = fd_retrieve(\*SOCKET);