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

HI monks, I have posted this 2 days back, tried a lot of options, but couldnt figure out what the problem was. Here is a little piece of code, it can't open the file access.db. The DB_file1.8.6 is in perl5.8.1 and I have db4 on mandrake9. i read the documentation for db_file, and i felt i had all the requirements.
use AnyDBM_File; use DB_File; use DirHandle; use FileHandle; dbmopen(%TEST, "/home/lab/access.db", 0666) or die "Can't open access +file: $!"; print "test1 \n"; while (($key,$val) = each %TEST) { print $key, ' = ', unpack('L',$val), "\n"; print "test2"; } dbmclose(%TEST); print "test3";
the output is test1 test3. its not entering the while loop. no compilation errors either. file to be opened has the permissions 0666. can anyone help me with this please, I have my deadline here pretty soon.Thanks in advance. Update1: hi bmann, thanx for the suggestion. it worked, it printed out some output like
test1 test_key = 2412538716 test2 test3
But, The access.db had a long string inserted in it. Someone else created it. How can I print that data??

Replies are listed 'Best First'.
Re: problem with dbmopen
by bmann (Priest) on Jun 09, 2004 at 22:53 UTC
    Did you test the obvious - is there any data in access.db? Try inserting a record before entering the while loop. Somthing like $TEST{'test_key'} = pack 'L', int(rand 2**32); should work.

    Oh, and dbmopen has been superseded by tie.