To answer the question in your title (which is quite different from the question in your post), undef==$defined can indeed be true. It's true when $defined is zero when coerced into a number, since the numerical comparison operator (==) coerces its operands into numbers and undef is zero when coerced into a number.
See my reply in this recent thread for more details.
In reply to Re: undef==defined sometimes? (title question)
by ikegami
in thread undef==defined sometimes?
by perl-diddler
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |