Binary "=~" binds a scalar expression to a pattern match. Binary "!~" is just like "=~" ... Binary "~~" does a smart match between its arguments. Unary "~" performs bitwise negation ""->"" is an infix dereference operator, just as it is in C and C++. nonassoc < > <= >= lt gt le ge