Yeah this makes sense since the string " " is true while it's numeric value is 0, so the stringy part must be tested if available.
DB<50> $a=" "
DB<51> $b = $a+0 # $a will cache its numeric val
DB<52> p !!$a # still true
1
DB<53> use Devel::Peek
DB<54> Dump $a
SV = PVNV(0x3fbd6f8) at 0x4aeebe0
REFCNT = 1
FLAGS = (POK,pIOK,pNOK,pPOK)
IV = 0 # <-- integer
NV = 0
PV = 0x4c4fb58 " "\0 # <-- string
CUR = 1
LEN = 10
DB<55> Dump $b
SV = NV(0x4aeedf0) at 0x4aeee08
REFCNT = 1
FLAGS = (NOK,pNOK)
NV = 0
DB<56>
|