in reply to Re^4: Reading from a flat text file database and storing contents in a hash
in thread Reading from a flat text file database and storing contents in a hash

I think that people look at DBM::Deep and go "It can't be that simple, so it's got to be really hard cause I don't understand it." This is your code, with the changes needed to make it DBM::Deep'ed.
# First script, to populate the db file: use DBM::Deep; our %services; tie %services, 'DBM::Deep', 'file.db'; %services = ( 1 => { name => "service1", host => { host1 => 1 }, }, 2 => { name => "service2", host => { host0 => 2, host5 => 2 }, }, ); ###################### # Second script, to print the services. our %services; tie %services, 'DBM::Deep', 'file.db'; print "----------------Menu-----------------------------------------\n +"; print "Please enter the number of the service and press return\n"; print "-------------------------------------------------------------\n +"; for $row (sort keys %services){ my $service=$services{$row}; print "$row\t $service->{ name }\n"; } print "Please enter number -->";
That's it. Note that your usage of %services doesn't change at all.

My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
  • Comment on Re^5: Reading from a flat text file database and storing contents in a hash
  • Download Code