- while (my ($key, $value) = each %{ $obj }) {
- if (ref($value) eq 'HASH') {
- _decode_recursively($value);
- } else {
- $obj->{$key} = decode('UTF-8', $value);
+ while (my ($key, $value) = each %{ $cfg }) {
+ next unless $value;
+
+ my $info = $key_map{$key} || {};
+ $key = $info->{name} || $key;
+
+ if ($info->{append_path}) {
+ $value = ':' . $value unless $value =~ m/^:/ || !$ENV{$key};
+ $value = $ENV{$key} . $value;