|
Posted by sisyphus on June 28, 2008, 1:38 am
Please log in for more thread options > On Windows XP Pro 32 bit, if I want to output environment variables
> PYTHON or ProgramFiles, I use the set command which output the
> following:
>
> C:\set PYTHON
> PYTHON=3DC:\Python24\python.exe
> C:\set ProgramFiles
> ProgramFiles=3DC:\Program Files
>
> If I used Perl 5.003_07 and use the system subroutine to show the
> environment variables, I get the following. =A0Perl script is:
>
> system("set PYTHON");
> system("set ProgramFiles");
>
> Output is:
> PYTHON=3DC:\Python24\python.exe
> PROGRAMFILES=3DC:\Program Files
>
> You'll notice that through system, the environment variable
> ProgramFiles is all in upper case. =A0Is there a way to preserve the
> mixed case of the environment variable through system(...)?
I find that case is preserved with perl 5.6.2, 5.8.8 and 5.10.0:
C:\>set MyTest=3DC:\MyTest
C:\>set MyTest
MyTest=3DC:\MyTest
C:\CVS>perl -e "system(\"set MyTest\")"
MyTest=3DC:\MyTest
C:\CVS>set MITEST=3DC:\MiTest
C:\CVS>perl -e "system(\"set MiTest\")"
MITEST=3DC:\MiTest
Not quite sure why you get the behaviour you reported ... perhaps it
is just that antiquated version of perl you're running. I guess you
could update your perl and see if the behaviour changes. (Though as
Ron Bergin has already indicated, there are better ways of accessing
the environment variables anyway.)
Cheers,
Rob
|