这个问题在这里已经有了答案:
How do I check if a Perl scalar variable has been initialized?
(5 个回答)
8年前关闭。
我一直在使用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'})
或 if(defined $debug)
.
关于Perl:检查是否设置了环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006108/