我们可以将Perl脚本中使用的variables设置为环境variables吗?

我有一个Perl脚本有一个像my $name的variables。 我们可以设置$ name的内容作为一个环境variables,我们可以导入和使用在其他文件?

我尝试像$ENV{NAME}=name ,但这是行不通的。

如果您想要影响流程或子流程的环境,只需使用%ENV散列:

 $ENV{CVSROOT}='<cvs>'; 

如果你想影响你的父进程的环境,你不能。 至少不是没有父母过程的合作。 标准的过程是发出一个shell脚本,让父进程执行该shell脚本:

 #!/usr/bin/perl -w print 'export CVSROOT=<cvs>'; 

…并从shell(脚本)调用该脚本为:

 eval `myscript.pl` 

环境变量是特定于一个进程的。 当产生一个子进程时,它继承了父进程的环境变量的副本,但是对其进行的任何更改都将被限制在自身以及更改之后所产生的任何子进程中。

所以不,你不能在你运行的脚本中为你的shell设置一个环境变量。