【发布时间】:2021-04-19 14:25:27
【问题描述】:
在我的 Perl 脚本中,我试图设置一个环境变量(例如 PATH)。如果它已经定义,请添加它的路径。否则,设置环境。代码:
if (defined($ENV{"PATH"})) {
$ENV{"PATH"} = $ENV{"PATH"}.":/usr/pkgs/";
} else {
$ENV{"PATH"} = "/usr/pkgs/";
}
在 Perl 中有没有更好更优雅的方法来做到这一点?也许一个班轮?请注意,环境不必是PATH。
【问题讨论】:
-
您是在 Perl 内部还是在 Perl 外部的 shell 中设置环境变量?
-
可能是
$ENV{PATH} = join(':', grep { defined $_ } ($ENV{PATH}, '/usr/pkgs/')); -
@TLP 在 perl 脚本中(环境可能已经在运行脚本的 shell 中定义)。
-
defined处理未设置的 PATH,但不是空路径。您想用length替换defined来处理这两个问题。 -
@ikegami 或者只使用
$_本身。
标签: perl environment-variables