A DBM Example Script
Let’s take a look at a more complete example. Example 20-1 demonstrates how we might use
GDBM_File
in an actual
script.
Like all the examples in this book, it can be downloaded from the
book’s web site, at http://www.elanus.net/book/.
Example 20-1. A simple GDBM_File example
#!/usr/bin/perl -w # color.plx - demonstrate GDBM_File use strict; use GDBM_File; my $datafile = 'color.gdbm'; tie my %COLOR, 'GDBM_File', $datafile, &GDBM_WRCREAT, 0644 or die "can't tie to $datafile for WRCREAT access: $!"; $COLOR{banana} = 'yellow'; $COLOR{apple} = 'red'; $COLOR{orange} = 'orange'; untie %COLOR; # no longer tied to the DBM file %COLOR = ( ); # empty the hash, to prove we're really storing # the data on disk. tie %COLOR, 'GDBM_File', $datafile, &GDBM_READER, 0644 or die "can't tie to $datafile for READER access: $!"; print "Here are all the records currently stored in $datafile:\n\n"; while (my($key, $value) = each %COLOR) { print "key: '$key', value: '$value'\n"; } untie %COLOR;
If we run this script, it should produce output that looks like the following:
[jbc@andros jbc]$ color.plx
Here are all the records currently stored in color.gdbm:
key: 'orange', value: 'orange'
key: 'banana', value: 'yellow'
key: 'apple', value: 'red'
Suppose that we now add the following statement immediately after the
first tie
statement in
color.plx
, before the %COLOR
hash has been untied:
tie my %ANOTHER, 'GDBM_File', $datafile, &GDBM_WRCREAT, 0644 or die "can't tie to $datafile for WRCREAT ...
Get Perl for Web Site Management now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.