This module opens a config file and parses it's contents for you.
The new() method accepts several parameters.
The method 'parse' returns a hash reference which contains all options and it's associated values of your config file as well as comments above.
If the dialog mode is set then at the moment of parsing user will be prompted to enter different value and if validation pattern for this particular key was defined then it will be validated and user could be asked to enter different value if it failed.
The format of config files supported by Config::Interactive is <name>=<value> pairs or XML fragments (by XML::Simple,
namespaces are not supported) and comments are any line which starts with #.
Comments inside of XML fragments will pop-up on top of the related fragment.
It will interpolate any perl variable which looks as ${?[A-Za-z]\w+}?
.
Please not that interpolation works for XML fragments as well,
BUT interpolated varialbles MUST be defined by key=value definition and NOT inside of other XML fragment!
The order of appearance of such variables in the config file is not important,
means you can use $bar variable anywhere in the config file but set it to something on the last line (or even skip setting it at all ,
then it will be undef).
It stores internally config file contents as hash ref where data structure is: Please note that array ref is used to store XML text elements and scalar for attributes.

The normalized ( flat hash with only key=value pairs ) view of the config could be obtained by getNormalizedData() call. All tree- like options will be flatted as key1_subkey1_subsubkey1. So the structure above will be converted into:

Provides a convenient way for loading config values from a given file and returns it as a hash structure, allows interpolation for the simple perl scalars ( $xxxx ${xxx} ) Also, it can run interactive session with user, use predefined prompts, use validation patterns and store back into the file, preserving the order of original comments. Motivation behind this module was inspired by Config::General module which was missing required functionality (preservation of the comments order and positioining, prompts and validation for command line based UI ). Basically, this is Yet-Another-Config-Module with list of features found to be useful.

This method returns a Config::Interactive object (a hash blessed into Config::Interactive namespace. All further methods must be used from that returned object. see below. Please note that setting dialog option into the "true" is not enough, because the method will look only for the keys defined in the %prompts_hash An alternative way to call new({}) is supplying an option -hash with hash reference to the set of the options.

Store into the config file, preserve all comments from the original file
Accepts filename as argument
Possible ways to call B<store()>:
$conf->store("my.conf"); #store into the my.conf file, if -file was defined at the object creation time, then this will overwrite it
$conf->store();