in reply to Saving Large Hashes to Disk via Storable.pm

Doesn't answer your question, but as an alternate method... store the filename of the book contents instead of the actual contents as in:

$books = { "Moby Dick" => '/path/to/books/moby_dick.dat', "LoTR" => '/path/to/books/lotr.dat', };

my @a=qw(random brilliant braindead); print $a[rand(@a)];