I don't see the purpose of the last substitution there. If you already have potential $values stored in the %config hash, why associate them with new keys?
Also, why is your Config file referring to variable names as values? If you could provide us with a small application and example config file, that might clear up my questions. :)