On Wed, Jan 15, 2003 at 11:36:29AM -0500, [EMAIL PROTECTED] wrote:
> I want to write a perl script to 
> replace a Unix shell script which
> does nothing other than create 
> and set environment variables.
> 
> So the perl script might look something like this:
> 
> $ENV{GREGSVAR}='Hello';
> 
> except that when I run the script, the
> assignment doesn't seem to stick, and
> the environment variable GREGSVAR doesn't
> exist after the perl script is finished
> executing.
> 
> looking up environment variables in the
> perl bible and the perl cookbook didn't
> show anything about sticky environment variables.
> 
> can this be done in perl?

Check the FAQ (perldoc -q environment):

       I {changed directory, modified my environment} in a perl
       script.  How come the change disappeared when I exited the
       script?  How do I get my changes to be visible?

               Unix
                   In the strictest sense, it can't be done--the
                   script executes as a different process from
                   the shell it was started from.  Changes to a
                   process are not reflected in its parent--only
                   in any children created after the change.
                   There is shell magic that may allow you to
                   fake it by eval()ing the script's output in
                   your shell; check out the comp.unix.questions
                   FAQ for details.


Ronald
_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to