DBM-Deep-Blue
view release on metacpan or search on metacpan
... actions which demonstrate the bug
$m->dump("zzz.data");
and include file zzz.data with your bug report.
Licence
Perl Artistic
Copyright
Philip R Brenan, 2010, www.handybackup.org
lib/DBM/Deep/Blue.pm view on Meta::CPAN
#----------------------------------------------------------------------
# DBM::Deep::Blue
# Philip R Brenan, 2010
#----------------------------------------------------------------------
=pod
=head1 Name
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue.html> - Memory
Mapped Paged Permanent Perl Objects with optional commit and rollback.
Windows only.
=head1 Synopsis
use DBM::Deep::Blue;
use Test::More;
{my $m = DBM::Deep::Blue::file('memory.data');
lib/DBM/Deep/Blue.pm view on Meta::CPAN
{my $m = DBM::Deep::Blue::file('memory.data');
my $h = $m->allocGlobalHash;
is $h->{a}[1]{b}[2]{c}[3], 'a1b2c2';
}
done_testing;
=head1 Description
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> makes
Perl Objects permanent, but pageable, using the standard Perl syntax for
manipulating nested data structures comprised of strings, hashes and arrays.
Permanent hashes and arrays may be blessed and auto vivified,
dereferenced and dumped: consequently you can use L<Data::Dump> or
L<Data::Dumper> and Perl debugger commands to examine data structures
built with
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> in the
normal way.
Units of work can either be committed continuously or discretely using
L</begin_work()>, L</commit()>, L</rollback()>. Uncommitted changes are
rolled back automatically when a backing file is reopened. Blessing is
subject to rollback.
The data structures are held in a memory area backed by a file using
your computer's virtual paging mechanism created by L</file()>. On large
data structures, this allows
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> to load
pages on demand as needed to locate data, and to write back to the
backing file only the pages containing modified data. By contrast, other
schemes for making Perl objects permanent have either to write the
entire data structure or track the changes made internally and then
write them piecemeal.
To obtain addressability to permanent data objects, you can call
L</allocGlobalHash()> or L</allocGlobalArray()> to create an array or
hash that can be immediately addressed. Other data can then be connected
to these structures.
lib/DBM/Deep/Blue.pm view on Meta::CPAN
and should therefore be reclaimed. Thus a data object returned by
L<perlfunc/delete> from a hash should be assigned to some other data
structure before any other operation is performed on the memory area.
Space reclamation is suspended during a unit of work, any space
liberated is removed by L<commit()> or L<rollback()>.
Memory structures can also be created without a backing file by using
the new() function.
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> is
written in C.
=head1 Methods
=head2 Allocation
Use these methods to create a new memory area.
=over 2
lib/DBM/Deep/Blue.pm view on Meta::CPAN
L<http::www.strawberryperl.org>
=head1 See Also
L<DBM::Deep>
=head1 Acknowledgements
L<DBM::Deep::Blue|http::www.handybackup.org/DBM_Deep_Blue_html> uses many
of the tests from by L<DBM::Deep>.
=head1 Bugs
Please report bugs etc. through CPAN. To include a dump of your memory
area with your bug report, call:
my $m = DBM::Deep::Blue::File(...);
lib/DBM/Deep/Blue.pm view on Meta::CPAN
and include file F<zzz.data> with your bug report.
=head1 Licence
Perl Artistic
=head1 Copyright
Philip R Brenan, 2010, www.handybackup.org
=cut
1;
__END__
( run in 1.051 second using v1.01-cache-2.11-cpan-49f99fa48dc )