The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Config::Model now provides a way to load and save data through
ResHat's Augeas library.

Augeas is also a configuration editing tool. It parses configuration
files in their native formats and transforms them into a
tree. Configuration changes are made by manipulating this tree and
saving it back into native config files.

Both Augeas and Config::Model rely on a tree to represent
configuration data. 

On one side, Augeas is able to load and write data while respecting
the structure and comments of the original configuration file. But
Augeas purpose is not to validate the semantic content of the
configuration file.

On the other side, Config::Model is able to validate the semantic
content of the configuration file, but it will discard all comments
and will write back configuration data using a canonical order. Thus
the comments and structure of the original configuration file is not
preserved.

You can now have the best of both worlds by using the Augeas library
to load and write data from Config::Model configuration tree. You can
now instruct Config::Model to use Augeas backend in the autoread and
autowrite feature. See Config::Model::Autoread for details.

Unfortunately, you must ensure that the tree representation specified
in Config::Model and Augeas lens are quite close together:
- Config::Model element names and Augeas lens names must be identical
- Both structures must be very close. Each Config::Model node must
  have a corresponsing lens.

Last, but not least, Config::Model will write data back in Augeas in a
rather crude way: all Augeas data for the saved file are wiped out and
written back from Config::Model data. This ensures that data removed
from Config::Model by the user are also removed from Augeas.

Nevertheless, reading and writing through Augeas should work quite
well as Augeas will still keep track of the original file structure.