Cross Reference: Storable.pm
xref
: /
osnet-11
/
usr
/
src
/
cmd
/
perl
/
5.8.4
/
distrib
/
lib
/
Memoize
/
Storable.pm
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
1
N/A
package
Memoize
::
Storable
;
1
N/A
1
N/A
=head1 NAME
1
N/A
1
N/A
Memoize::Storable - store Memoized data in Storable database
1
N/A
1
N/A
=head1 DESCRIPTION
1
N/A
1
N/A
See L<Memoize>.
1
N/A
1
N/A
=cut
1
N/A
1
N/A
use
Storable
();
1
N/A
$
VERSION
=
0.65
;
1
N/A
$
Verbose
=
0
;
1
N/A
1
N/A
sub
TIEHASH
{
1
N/A
require
Carp
if
$
Verbose
;
1
N/A
my
$
package
=
shift
;
1
N/A
my
$
filename
=
shift
;
1
N/A
my
$
truehash
= (-e $
filename
) ?
Storable
::
retrieve
($
filename
) : {};
1
N/A
my
%
options
;
1
N/A
print
STDERR
"Memoize::Storable::TIEHASH($filename, @_)\n"
if
$
Verbose
;
1
N/A
@
options
{@_} = ();
1
N/A
my
$
self
=
1
N/A
{
FILENAME
=> $
filename
,
1
N/A
H => $
truehash
,
1
N/A
OPTIONS
=> \%
options
1
N/A
};
1
N/A
bless
$
self
=> $
package
;
1
N/A
}
1
N/A
1
N/A
sub
STORE
{
1
N/A
require
Carp
if
$
Verbose
;
1
N/A
my
$
self
=
shift
;
1
N/A
print
STDERR
"Memoize::Storable::STORE(@_)\n"
if
$
Verbose
;
1
N/A
$
self
->{H}{$_[
0
]} = $_[
1
];
1
N/A
}
1
N/A
1
N/A
sub
FETCH
{
1
N/A
require
Carp
if
$
Verbose
;
1
N/A
my
$
self
=
shift
;
1
N/A
print
STDERR
"Memoize::Storable::FETCH(@_)\n"
if
$
Verbose
;
1
N/A
$
self
->{H}{$_[
0
]};
1
N/A
}
1
N/A
1
N/A
sub
EXISTS
{
1
N/A
require
Carp
if
$
Verbose
;
1
N/A
my
$
self
=
shift
;
1
N/A
print
STDERR
"Memoize::Storable::EXISTS(@_)\n"
if
$
Verbose
;
1
N/A
exists
$
self
->{H}{$_[
0
]};
1
N/A
}
1
N/A
1
N/A
sub
DESTROY
{
1
N/A
require
Carp
if
$
Verbose
;
1
N/A
my
$
self
=
shift
;
1
N/A
print
STDERR
"Memoize::Storable::DESTROY(@_)\n"
if
$
Verbose
;
1
N/A
if
($
self
->{
OPTIONS
}{
'nstore'
}) {
1
N/A
Storable
::
nstore
($
self
->{H}, $
self
->{
FILENAME
});
1
N/A
}
else
{
1
N/A
Storable
::
store
($
self
->{H}, $
self
->{
FILENAME
});
1
N/A
}
1
N/A
}
1
N/A
1
N/A
sub
FIRSTKEY
{
1
N/A
'Fake hash from Memoize::Storable'
;
1
N/A
}
1
N/A
1
N/A
sub
NEXTKEY
{
1
N/A
undef
;
1
N/A
}
1
N/A
1
;