in reply to expanding Environment variable

Your post is a little confusing and not well formatted (HTML can be a bi+<# ).

I have interpreted your post that your config file really contains the following string:

Id = $ENV{APPL}
Why using perl syntax here?

I also assume that the file and its lines got already parsed so you end up with a variable holding the string '$ENV{APPL}'. You could simply eval this string:

$string = '$ENV{APPL}'; $var = eval $string;
However, this is very dangerous because the config file could also hold any other Perl code there, e.g. code which deletes your complete hard drive.

Therefore it is safer to extract the 'APPL' part using a regular expression:

if ($string =~ /\$ENV{([^}]+)}/) { $var = $ENV{$1}; }
The regular expression could also be /\$ENV\s*{\s*(.*?)\s*}$/ to allow for spaces before and after the braces.

I hope this is what you wanted.