It is far more complex than that. A small taste of it (a bit large to write it out fully)
<proc name="procd" />
<file group="grp" path="/etc" user="user" perm="00755" />
<command id="non-root RC scripts">
find /etc/rc?.d /etc/init.d ! -user root
There's really much more than that, but it's just a small sample of it. It's a configuration audit check/data collector for remote systems. The config is to define all files to capture, processes to check good/bad, exceptions, port checks, etc.... It's actually a rather large XML file (443 lines--244 lines with AttrIndent off). Currently I'm using XML::Simple to parse it, but not sure if that's really the best way to parse it. But for now, it's the only possible resource I have (can't compile expact due removal of our compile tools).
sometimes it's a PITA to get XML::Simple to parse or write how you want it to
Yeah, fully aware of that. This is why I'm starting with the config file. I'm getting it exactly the way I want it and getting it parsed just how I want it with XML::Simple. Right now, everything's pretty much near perfect (I have to access my one-liners one more hash level than I'd like, but it's no biggy--only an additiona 8 characters to type in my code, once).
We put the 'K' in kwality!