in reply to Re^3: 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

OK I'll stop using the XML::Simple and try DBM::Deep instead. It just looked a bit more complicated, when I glanced at it.
  • Comment on Re^4: Reading from a flat text file database and storing contents in a hash

Replies are listed 'Best First'.
Re^5: Reading from a flat text file database and storing contents in a hash
by dragonchild (Archbishop) on Apr 20, 2007 at 16:19 UTC
    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?