in reply to expanding Environment variable
I have interpreted your post that your config file really contains the following string:
Why using perl syntax here?Id = $ENV{APPL}
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:
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.$string = '$ENV{APPL}'; $var = eval $string;
Therefore it is safer to extract the 'APPL' part using a regular expression:
The regular expression could also be /\$ENV\s*{\s*(.*?)\s*}$/ to allow for spaces before and after the braces.if ($string =~ /\$ENV{([^}]+)}/) { $var = $ENV{$1}; }
I hope this is what you wanted.
|
|---|