私は使用しています
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)
。
exists
そうです、スカラー変数には意味がありません。しかし、あなたはただ書くことができませんでしたif(defined $ENV{VARIABLE_NAME})
か?存在しない場合は$ENV{VARIABLE_NAME}
を返しundef
ます。