I have a Perl script which has a variable like my $name
. Can we set the contents of $name as an environment variable which we can import and use in other files?
I tried like $ENV{NAME}=name
, but this is not working.
I have a Perl script which has a variable like my $name
. Can we set the contents of $name as an environment variable which we can import and use in other files?
I tried like $ENV{NAME}=name
, but this is not working.
If you want to affect the environment of your process or your child processes, just use the %ENV
hash:
$ENV{CVSROOT}='<cvs>';
If you want to affect the environment of your parent process, you can't. At least not without cooperation of the parent process. The standard process is to emit a shell script and have the parent process execute that shell script:
#!/usr/bin/perl -w
print 'export CVSROOT=<cvs>';
... and call that script from the shell (script) as:
eval `myscript.pl`
Environment variables are specific to a process. When a child process is spawned, it inherits copies of its parent's environment variables, but any changes it makes to them are restricted to itself and any children it spawns after the change.
So no, you can't set an environment variable for your shell from within a script you run.