in reply to "2" | "8" = ":" and 2|8=10

So there are places in perl, where it makes a difference if a scalar is a string or an integer.

Unfortunately, yes. Post-increment, post-decrement and syscall also have that problem.

Yet there doesn't seem to be a way to find out if a scalar is an if a scalar is an integer or string.

...or both or neither.

Maybe, but there's no need for one unless you are planning on introducing such problems into your own code.

If you want a string bitwise operator, coerce the value into a string ("".$x). If you want a numeric bitwise operator, coerce the value into a number (0+$x).