in reply to Re^2: A more concise way to map the contents of an array.
in thread A more concise way to map the contents of an array.
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!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: A more concise way to map the contents of an array.
by Amblikai (Scribe) on Dec 30, 2012 at 13:59 UTC | |
by Athanasius (Archbishop) on Dec 30, 2012 at 14:42 UTC | |
by Amblikai (Scribe) on Dec 30, 2012 at 16:11 UTC | |
by LanX (Saint) on Dec 30, 2012 at 14:03 UTC | |
by Amblikai (Scribe) on Dec 30, 2012 at 14:31 UTC |