
![]() | ![]() |
8.189. Storable
Storable.pm allows you to keep peristent state on
your Perl data structures, which include objects of type
SCALAR, ARRAY,
HASH, and REF. In other words,
Storable lets you deal with any Perl types that can be conveniently
stored on disk and retrieved at a later time. At the heart of
Storable is store, which takes a reference to the
object that will be stored and the filename where the information
should be written. And, while you're statefully
keeping your Perl data on a filesystem, retrieve
will open the file where the data is kept so you can work with it. As
of Perl 5.8, Storable is shipped with the source kit.
For the cost of a slight header overhead, you can store to an already
opened file descriptor using the store_fd routine
and retrieve from a file via fd_retrieve. These
names aren't imported by default, so you will have
to do this explicitly if you need these routines. The file descriptor
you supply must be opened for read if you're going
to retrieve and for write if you wish to store. For example:
#!/usr/local/bin/perl -w
use Storable;
my $state_file = '/tmp/emp.cache';
my %empdata = (EmployeeNumber => 1, Person => 'Nathan Patwardhan');
store(\%empdata, $state_file);
my $h_ref = retrieve($state_file);
Storable implements the following methods.
lock_retrieve |
lock_retrieve()
Gets an exclusive lock at the file before writing.
lock_store |
lock_store()
Same as store, except that it gets an exclusive
lock at the file before writing.
nlock_store |
nlock_store()
Same as nstore(), except that it gets an exclusive
lock at the file before writing.
nstore_fd |
nstore_fd()
Allows you to store data in network order so it can be shared across
platforms. It also stores stringified double values to ensure
portability. nstore_fd works the same as
store_fd and behaves the same if errors are
encountered.
retrieve |
retrieve(file)
Takes file as an option and recreates the
objects in memory for you; a reference to the object is returned.
retrieve returns undef if an
I/O error is encountered.
store |
store(type, file)
Takes type (HASH,
SCALAR, etc.) and writes it to
file. store returns
undef if an I/O error is encountered.
store_fd |
store_fd(type, fh)
Allows you to store type in an existing
fh (filehandle). Similarly, you can
retrieve data from fh using
fd_retrieve. If fhisn't open, both store_fd and
fd_retrieve will fail.
![]() | ![]() | ![]() |
8.188. sort | ![]() | 8.190. strict |

Copyright © 2002 O'Reilly & Associates. All rights reserved.