Truth and Falsehood
The number 0, the strings '0'
and ''
, the empty list ()
, and undef
are all false in a boolean context. All other values are true. Negation of a true value by !
or not
returns a special false value. When evaluated as a string it is treated as ''
, but as a number, it is treated as 0.