Perl:检查是否设置了环境变量

Perl:检查是否设置了环境变量,perl,exists,Perl,Exists,我一直在使用 if(存在$ENV{VARIABLE\u NAME}&&defined$ENV{VARIABLE\u NAME}) 我觉得它把代码弄乱了,所以把它的值赋给了一个变量 $debug = $ENV{VARIABLE_NAME}; 但是,现在我无法检查标量值上是否存在。有没有办法检查存在的标量值 你是对的,存在对于标量变量来说是没有意义的。但是如果(定义为$ENV{VARIABLE\u NAME}),您就不能编写?如果它不存在,那么$ENV{VARIABLE_NAME}将返回undef

我一直在使用

if(存在$ENV{VARIABLE\u NAME}&&defined$ENV{VARIABLE\u NAME})

我觉得它把代码弄乱了,所以把它的值赋给了一个变量

$debug = $ENV{VARIABLE_NAME};

但是,现在我无法检查标量值上是否存在
。有没有办法检查存在的标量值

你是对的,
存在
对于标量变量来说是没有意义的。但是如果(定义为$ENV{VARIABLE\u NAME})
,您就不能编写
?如果它不存在,那么
$ENV{VARIABLE_NAME}
将返回
undef
对于标量,没有
存在的概念;对于散列,它告诉您给定的键是否出现在散列中(例如,
keys%ENV
是否包含它),但这对于标量来说没有意义


但是,在环境变量的特定情况下,无论如何都不需要进行
exists
测试:环境变量始终是字符串,因此它们永远不会
undef
,除非它们没有被设置-使
exists
等同于为它们定义的
。因此,您只需编写
if(定义的$ENV{'VARIABLE\u NAME'})
if(定义的$debug)

谢谢。有道理:)@iDev:不客气@斯奎盖伊-我可能没有回答这个问题。我很抱歉问了一个类似的问题。在这种情况下,我可以删除我的问题吗?我已经得到了一些有用的回复。如果我认为有什么可以帮助的话!我编辑说可能,因为有时很难说。但无论如何,如果你解决了你的问题,那么一切都很好。干杯。如果您不打算测试是否存在,您应该指定一个默认值:
my$debug=$ENV{debug}|0