ikegami,
That makes sense to me (DWIM). If I create a scalar $foo initially as 'bar' and then change it to '', it is an empty string but it is still defined. If on the other hand, I undef $foo it should no longer be defined. Just change the sigil - though it has been deprecated for arrays and hashes as has been noted.