有时候,一个程序的操作或者配置必须要访问操作系统的环境。perl提供了两种不同的方式来访问环境变量。你可以使用perl内置的%ENV散列,或者你可以使用Env模块来访问环境。
两种方法都提供了对环境的双向访问,这就意味着对perl变量的任何改变都会造成环境变量的改变。这些变化会被传递给任何子处理,但是不会在你的脚本退出之后被保留。
%ENV散列的使用很简单。%ENV散列的关键是环境变量名;散列值就是环境变量值。
下列代码会显示路径环境变量的内容:
print "path is $ENV ";
这段代码会创建(或者覆盖)环境里的perlVar变量。
$ENV{perlVar} = "perl Tech Tips";
要删除环境变量,就要使用delete。下面的例子会删除临时的环境变量:
delete $ENV;
访问环境变量的第二种方式是使用Env模块。Env模块会为每个环境变量创建perl标量或者数组变量。
你可以指定要被导入的特定变量,你也可以导入所有的环境变量。如果你指定了环境变量名,那么它们就不需要作为环境变量而存在。
如果只想访问路径变量,就要使用下面的代码:
useEnvqw(PATH);
print "The path is $PATH
";
如果你不指定变量的类型,它就被当作标量。如果你将一个变量指定为数组(例如使用Envqw(@PATH);),那么它就会被Config::Config作为定界符自动地分割和合并。
下面的代码会在环境里创建(或者覆盖,如果它已经存在的话)perlVar变量。
useEnvqw(perlVar);
$perlVar = "perl Tech Tips";
perl为访问环境变量提供了两种不同的方式:%ENV散列和Env模块。根据你的需要以及编写代码的个人喜好,你可以使用两种方式中的任何一种来访问或者更改环境变量。
本文作者:James Brown具有20年的行业开发专长和经验,拥有多重工作背景,包括数字硬件设计,网络操作系统开发和分布式计算等。