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::false1, 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