in reply to Reading from a flat text file database and storing contents in a hash

Use DBM::Deep. Then, provide a simple script to add a service. In fact, this kind of service manager begs for a master script that you launch to add, remove, start, stop, and list the services.

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: Reading from a flat text file database and storing contents in a hash

Replies are listed 'Best First'.
Re^2: Reading from a flat text file database and storing contents in a hash
by wishartz (Beadle) on Apr 20, 2007 at 14:05 UTC
    This is all really good advice, but at the moment I have been playing around with XML::Simple. The problem that I am having is I cannot generate the data structure that I had before with the hash it keeps on putting things in a nested array. This is what I used to have before using XML::Simple
    $VAR1 = '1'; $VAR2 = { 'host' => { 'hosta' => 1 }, 'name' => 'servicea' }; $VAR3 = '2'; $VAR4 = { 'host' => { 'host0' => 2, 'host5' => 2 }, 'name' => 'serviceb' };
    When using XML::Simple I get this:
    $VAR1 = { 'name' => 'servicea', 'host' => [ { 'hosta' => '2' }, { 'hostb' => '2' } ]
    I am using the following XML with XML::simple.
    <?xml version='1.0'?> <services> <name>servicea</name> <host> <hosta>2</hosta> </host> <host> <hosta>2</hosta> </host> </services>
    Is there any way I can change the XML, so XML::simple only uses hash of hashes instead of hashes and arrays? Thanks
      *sighs* I provide you with a suggestion. You say "That's cool, but can you debug what's wrong with this other mechanism?" XML is a very poor solution for this, which is why I suggested DBM::Deep. dbm-deep is designed to solve this specific problem that you're working with - easy persistence of Perl datastructures.

      Use the proper solution for the job. XML isn't it.


      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?
        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.