|Think about Loose Coupling|
In my opinion, XML::Simple is not the tool to use for this kind of work, especially as the complexity of your XML documents increases
XML::Simple is a great tool for
By that second point I mean, you aren't contrained by someone elses DTD or XSD - there layout is important e.g. the <name> element must come before the <address> element if the XSD says so, but because XML::Simple is outputting a hash with 'name' and 'address' keys, you cant control that (well, you can, but you have to tie the hash to a package that will sort the keys for you)
In my opinion, if your going to be writing elements/nodes to an XML document, and you dont want to perturb any other parts of the document, your better off using an XML module that supports XPath navigation to locate your insert point, and using its API to insert the required nodes.
This is more robust than tweaking XML::Simple's many options to keep the source and result documents the same.
Another option is XSLT, but that's a whole other technology to master...
...reality must take precedence over public relations, for nature cannot be fooled. - R P Feynmann