答案 0 :(得分:6)
Env说
Perl将环境变量维护在名为
java.sql.*
的特殊哈希中。对于此访问方法不方便时,Perl模块%ENV
允许将环境变量视为标量或数组变量。
所以是的,这是合法的,预期使用的变量是Env
,$PATH
,$USER
等。
然而,这个模块
默认情况下,它将所有现有环境变量(
$HOME
)绑定到标量。
我更喜欢直接使用%ENV
hash,而不是keys %ENV
- 对应的tie
。
答案 1 :(得分:2)
是的,由于两个因素的相互作用,这是预期的行为:
Env
模块,该模块将$ENV{PATH}
别名为$PATH
。请注意,$ENV{PATH}
总是在Perl中可用。 use Env
只是为%ENV
的内容添加了别名,因此无需提供%ENV
:
$ perl -E 'say $ENV{LANG}'
en_US.UTF-8
${PATH}
只不过是一种更详细的说法$PATH
。 ${...}
构造(及其堂兄,@{...}
和%{...}
)最常用于双引号字符串内插,以强制Perl识别{{1}的全部内容}作为变量名而不是较短的名称后跟文字文本,但语法也可用于其他上下文。简单示范:
{...}
答案 2 :(得分:1)
使用$ ENV是perl中的预定义变量格式
print $ENV{PATH};