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


in reply to Baby Steps "if" behavior?

If I remember correctly 0, null string, and empty string are all false answers. However, 0 and empty string are defined answers. $kaka ne "" checks to see if $kaka is equal to the empty string. Whereas defined $kaka checks to see if $kaka is something other than 0, null, or empty. I also think there are some differences for defined and exists. I think exists only applies to hash values. I know this isn't a complete answer but it gets you pointed in the right direction, I hope. Check in perlfunc for more complete answers.

Update:
Oops. You can uses exists to check on array elements. Next time I'll read perlfunc before shooting off with the fingers.