0/FALSE: 0, "0", "", undef 1/TRUE: everything else AND OR XOR NOT 0&0=0 0|0=0 0^0=0 !0=1 0&1=0 0|1=1 0^1=1 !1=0 1&0=0 1|0=1 1^0=1 1&1=1 1|1=1 1^1=0 & | ^ ~ <-- bitwise && || ! <-- logical, high precedence and or xor not <-- logical, low precedence