in reply to Truth and Falsehood
You might want to add that for dualvars, it is the stringy part of the value which is tested for truthfulness.
use Scalar::Util 'dualvar'; dualvar(1, "0"); # false dualvar(0, "1"); # true [download]