> 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
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to