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

时间:2013-08-01 23:04:04

标签: perl exists

我一直在使用

if(exists $ENV{VARIABLE_NAME} && defined $ENV{VARIABLE_NAME})在几个地方我的perl脚本。

我觉得它使代码混乱,因此将其值赋给变量。

$debug = $ENV{VARIABLE_NAME};

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

2 个答案:

答案 0 :(得分:14)

标量没有exists的概念;对于哈希,它会告诉您给定键是否出现在哈希中(例如,keys %ENV是否包含它),但这对于标量来说毫无意义。

但是在环境变量的特定情况下,您无论如何都不需要exists测试:环境变量总是字符串,因此它们永远不会undef,除非它们尚未设置 - 使exists等同于defined。因此,您只需撰写if(defined $ENV{'VARIABLE_NAME'})if(defined $debug)

答案 1 :(得分:5)

你是对的,exists对于标量变量毫无意义。但你不能只写if(defined $ENV{VARIABLE_NAME})吗?如果它不存在,则$ENV{VARIABLE_NAME}将返回undef