我一直在使用
if(exists $ENV{VARIABLE_NAME} && defined $ENV{VARIABLE_NAME})
在几个地方我的 perl 脚本。
我觉得它使代码混乱,因此将其值分配给了一个变量。
$debug = $ENV{VARIABLE_NAME};
但是,现在我无法检查exists
标量值。有没有办法检查是否存在标量值?
没有exists
标量的概念;对于散列,它告诉您给定键是否出现在散列中(例如,是否keys %ENV
将包含它),但这对于标量没有意义。
但是在环境变量的特定情况下,无论如何您都不需要exists
测试:环境变量始终是字符串,因此undef
除非尚未设置它们,否则它们永远不会是 -对它们exists
等效defined
。所以你可以只写if(defined $ENV{'VARIABLE_NAME'})
or if(defined $debug)
。
没错,这exists
对于标量变量毫无意义。但是你就不能写if(defined $ENV{VARIABLE_NAME})
吗?如果它不存在,那么$ENV{VARIABLE_NAME}
将返回undef
。