Personally I have become a big fan of config::general. Its pretty trim, provides methods for updating the data file on the fly, should be as portable as perl ( im guessing here. ).
use Config::General;
my $cfg_file = '/path/to/some/file';
my $cfg_obj = Config::General->new($cfg_file);
my $href_config = $cfg_obj->get_all();
You could even set up a signal handler for catching say sig USR1 or USR2. 1 for dumping the current config from memory to the filesystem, and the other for reloading the config from the filesystem.
Regards
MMMMM... Chocolaty Perl Goodness.....