in reply to How to work NDBM and tie

I'm pretty sure you're meant to use NDBM this way: tie an empty hash, add and read values, and then untie.

If you untie before adding elements, you shouldn't be surprised if they don't end up in the storage file.

Replies are listed 'Best First'.
Re^2: How to work NDBM and tie
by Anonymous Monk on Feb 25, 2011 at 10:47 UTC
    How do I tie a hash to an already existing NDBM file and only read from it?

      Reading the docs, I'd suspect that it would be as simple as this:

      $ cat ex_NDBM_File_2.pl use strict; use warnings; use Fcntl; use NDBM_File; tie(my %h, 'NDBM_File', 'ex_NDBM_File.ndbm', O_RDONLY, 0777) or die; for my $k (sort keys %h) { print "$k --> '$h{$k}'\n"; } $ perl ex_NDBM_File_2.pl bar --> 'testing 12 .. hello, testing 12!' foo --> '123 test'

      I prepared the NDBM file like so:

      $ cat ex_NDBM_File_1.pl use strict; use Fcntl; use NDBM_File; tie(my %h, 'NDBM_File', 'ex_NDBM_File.ndbm', O_RDWR|O_CREAT, 0777) or +die; $h{foo}='123 test'; $h{bar}='testing 12 .. hello, testing 12!'; $ perl ex_NDBM_File_1.pl $

      ...roboticus

      When your only tool is a hammer, all problems look like your thumb.

      The exact same way, maybe using only O_RDONLY flag