Just use the product of a doubled negation to get clear booleans!¹
Perl's definition of false covers different data types and context cases.
from perldata
A scalar value is interpreted as TRUE in the Boolean sense if i +t is not the null string or the number 0 (or its string equivalent, "0") +. The Boolean context is just a special kind of scalar context where +no conversion to a string or a number is ever performed.
(Null string here means either empty string "" or undef)
from perlsyn
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 fals +e value. When evaluated as a string it is treated as '', but as a number +, it is treated as 0.
Cheers Rolf
¹) in this case my @cell_contents = map { !!$_ } @$array_ref[3..10];
for me the most readable alternative!
In reply to Re^3: A more concise way to map the contents of an array.
by LanX
in thread A more concise way to map the contents of an array.
by Amblikai
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |