> Using AS Perl 5.8.7 under W98SE, the PATH environment variable is
> displayed, then assigned a new value; but the new value doesn't propagate
> back to the MS-DOS %PATH% variable. Are the %ENV values read-only?
Many thanks to Robert, Bill, Alex, and Chris who responded to this inquiry.
I should have figured out that child processes can't change their parent
environment (but didn't)... and thus the value of this community.
The original problem was that, after startup, the PATH contains duplicate
pathnames. After debugging the startup sequence
(IO.SYS->MSDOS.SYS->COMMAND.COM->CONFIG.SYS->AUTOEXEC.BAT), the problem
seemed to originate with IO.SYS, which is a hard module to modify. So I
wrote a PERL program that culled duplicates from the PATH environment
variable and assigned the new path string to $ENV{PATH}. I tried to
interpret it from AUTOEXEC.BAT, but got a "Not a DOS program" (probably in
real mode) error message at boot time. I then tried to execute it from the
shortcuts for the command prompts, but for the reason stated, that didn't
work.
The less-than-desirable fix that I'm now using is to reference batch-file
SHELLINI.BAT in the shortcuts to the command-prompts. The batch-file
invokes the PERL interpreter as in:
...
Perl C:\Programs\Scripts\PATHcull.plx
CALL C:\PROGRAMS\Scripts\PATH.BAT
...
PATHcull.plx splits the PATH string into pathnames, culls out the
duplicates, and concatenates a new string ($sRed), which is written in a
SET PATH=$sRed command to file PATH.BAT (yes, the Admin's hack -- the
temporary batch-file -- rears its hoary head). And SHELLINI.BAT calls
PATH.BAT to execute the SET PATH command. At least that fixes PATH for
each instance of the command-prompt.
Regards, Neil
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs