JSchmitz has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to use tie as a frontend for a DBM file. I am using the SDBM module which ships with Perl. This code or something close should work but I seem to be spinning my wheels. The example below is based on what it says in the Advanced Perl Programming book. Any insights would be appreciated. Cheers!
use Fcntl; use SDBM_File; tie (%h, 'SDBM_File', 'data.dbm', O_RDWR|O_CREAT, 0640) || die $!; # This opens the data file $h(a) = 20; # This writes the file while (($k, $v) = %h) { # Iterates over all keys print "$k,$v\n" } untie %h; # Flush and close the dbm file

Replies are listed 'Best First'.
Re: Tying Hash for DBM
by nardo (Friar) on Jul 23, 2001 at 21:15 UTC
    $h(a) = 20;
    should be
    $h{a} = 20;
    (note the braces rather than parenthesis)

    while (($k, $v) = %h)
    should be
    while (($k, $v) = each %h)