in reply to Re^3: not able to make defined-or operator work in my code
in thread RE: not able to make defined-or operator work in my code
Set an environment variable, "PERL_MTYEST=''", and then run the following script:
use feature qw/say/; say exists($ENV{PERL_MYTEST}) ? "exists" : "doesn't exist"; say defined($ENV{PERL_MYTEST}) ? "defined" : "undefined"; say length($ENV{PERL_MYTEST}) ? "non-zero length" : "zero length"; say "<<$ENV{PERL_MYTEST}>>";
The output will be:
exists defined zero length <<>>
Which indicates that setting an environment variable to '' (an empty string) does not create an undefined variable, but rather, a defined variable with a value of zero length. Your assumption is just incorrect, that's all. Test for length.
If you unset the environment variable in question, and then run the same test, you will get "doesn't exist", and "undefined".
I suppose it's possible that your mileage will vary depending on operating system, but I don't know what OS would do it differently.
Dave
|
|---|