Perl does not have a boolean data type, nor does it have any
false keywords like many other languages. However, every scalar value will evaluate to true or false when evaluated in a boolean context (the condition in an if statement or a while loop, for example).
'', the empty string. This is what the built-in comparison operators return (e.g.
0 == 1)
0, the number 0, even if you write it as 000 or 0.0
'0', the string that contains a single 0 digit
undef, the undefined value
'0', such as
'0E0'(used by well known modules) or
'0 but true'(used by Perl functions)
@a returns whether the array is empty or not
%h returns whether the hash is empty or not
grep returns whether any matching items were found or not
@a = LIST and
(LIST) = LIST return whether the right-hand side LIST produced any scalars or not