For two inputs, there are 16 operations. Most of them are rarely useful, which is why we don't have Perl operators for them.

By the way, everything can be implemented solely with `nand`:

` p | q | p nand q
---+---+----------
0 | 0 | 1
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
not p === p nand p
p and q === (p nand q) nand (p nand q)
p or q === (p nand p) nand (q nand q)
p xor q === (p nand (q nand q)) nand ((p nand p) nand q)
`

Other operatations could also be used instead of `nand`. `nor`, for example:

` p | q | p nor q
---+---+---------
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0
1 | 1 | 0
~(p nor q)
not p === p nor p
p and q === (p nor p) nor (q nor q)
p or q === (p nor q) nor (p nor q)
p xor q === [something very long]
`

Comment onRe^2: Bit operations for beginnersSelectorDownloadCode