http://www.perlmonks.org?node_id=886154


in reply to how ! operator works

An empty string qualifies as "false" too. perlop tells us that ! provides logical negation, which is different from 'numeric.'

perlsyn tells us the following:

The number 0, the strings '0' and '' , the empty list () , and undef are all false in a boolean context. All other values are true. Negation of a true value by ! or not returns a special false value. When evaluated as a string it is treated as '' , but as a number, it is treated as 0.


Dave