Zero (in any format), the empty string and undef are false, as documented in perlsyn. Objects can also evaluate to false through overloading.
The reason zero in every format must be false is quite simple. If zero in some formats is false and zero is some other formats is true, something false could became true just by looking at it because Perl is free to convert between equivalent representations. That would be very bad.
That means that signed integer (IV) zero is false, unsigned integer (UV) zero is false, floating point (NV) zero is false, basic string (PV,UTF=0) zero is false, and wide string (PV,UTF8=1) zero is false.
PS — I don't know which Perl book talked of "null value" and "null variable", because Perl has no such thing. Perhaps you mean undef?
In reply to Re: What is the correct definition of False and Null in Perl?
by ikegami
in thread What is the correct definition of False and Null in Perl?
by flexvault
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |