source: for-distributions/trunk/bin/windows/perl/lib/Memoize/Storable.pm@ 14489

Last change on this file since 14489 was 14489, checked in by oranfry, 17 years ago

upgrading to perl 5.8

File size: 1.4 KB
Line 
1package Memoize::Storable;
2
3=head1 NAME
4
5Memoize::Storable - store Memoized data in Storable database
6
7=head1 DESCRIPTION
8
9See L<Memoize>.
10
11=cut
12
13use Storable ();
14$VERSION = 0.65;
15$Verbose = 0;
16
17sub TIEHASH {
18 require Carp if $Verbose;
19 my $package = shift;
20 my $filename = shift;
21 my $truehash = (-e $filename) ? Storable::retrieve($filename) : {};
22 my %options;
23 print STDERR "Memoize::Storable::TIEHASH($filename, @_)\n" if $Verbose;
24 @options{@_} = ();
25 my $self =
26 {FILENAME => $filename,
27 H => $truehash,
28 OPTIONS => \%options
29 };
30 bless $self => $package;
31}
32
33sub STORE {
34 require Carp if $Verbose;
35 my $self = shift;
36 print STDERR "Memoize::Storable::STORE(@_)\n" if $Verbose;
37 $self->{H}{$_[0]} = $_[1];
38}
39
40sub FETCH {
41 require Carp if $Verbose;
42 my $self = shift;
43 print STDERR "Memoize::Storable::FETCH(@_)\n" if $Verbose;
44 $self->{H}{$_[0]};
45}
46
47sub EXISTS {
48 require Carp if $Verbose;
49 my $self = shift;
50 print STDERR "Memoize::Storable::EXISTS(@_)\n" if $Verbose;
51 exists $self->{H}{$_[0]};
52}
53
54sub DESTROY {
55 require Carp if $Verbose;
56 my $self= shift;
57 print STDERR "Memoize::Storable::DESTROY(@_)\n" if $Verbose;
58 if ($self->{OPTIONS}{'nstore'}) {
59 Storable::nstore($self->{H}, $self->{FILENAME});
60 } else {
61 Storable::store($self->{H}, $self->{FILENAME});
62 }
63}
64
65sub FIRSTKEY {
66 'Fake hash from Memoize::Storable';
67}
68
69sub NEXTKEY {
70 undef;
71}
721;
Note: See TracBrowser for help on using the repository browser.