I like
YAML:
root: '/path/to/root'
filepath: '/path/to/files'
ftp_instances:
- sourcepath: '/source/path/on/server'
savepath: '/save/files/here'
- sourcepath:
savepath:
- sourcepath:
savepath:
(Though, as noted, it is sensitive to whitespace, YAML returns nice error messages, including a program usable code, a human usable error message and the line number of any error.)
Reading that YAML file returns this perl structure:
$VAR1 = {
'ftp_instances' => [
{
'savepath' => '/save/files/here',
'sourcepath' => '/source/path/on/server'
},
{
'savepath' => '',
'sourcepath' => ''
},
{
'savepath' => '',
'sourcepath' => ''
}
],
'filepath' => '/path/to/files',
'root' => '/path/to/root'
};