Perl does not have a boolean data type, nor does it have any true
and 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 digitundef
, the undefined valueJSON::false
1
, 3.14
, 'NaN'
or 'Inf'
'0'
, such as '00'
, '0e0'
, "0\n"
and "abc"
.'0E0'
(used by well known modules) or '0 but true'
(used by Perl functions)' '
, 'false'
\''
, []
, or {}
@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