in reply to problem with dbmopen

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.