闹不明白defined和exists之间的差别

闹不明白defined和exists之间的差别

似乎在判断某一个hash的value是否存在时,它都能得到正确的结果。

比如 %hash = (
a=>100,
b=>200
);

print "ok" if (exists $hash{a});

翻遍了perl语言编程的函数列表以及其它的参考书,也没完全闹明白,哪位大大能简单说说
? 我很勤劳的!!
defined是用来测试一个变量是否是undef的,也就是说这个变量一定有,只是不知道对这个变量赋过值没有

exists一般是用来测试hash表中是否存在一个变量的

不知道我说明白没有
exists判断散列或者数组中某值是否存在,defined判断一个值是不是undef。
存在的也有可能是undef。


QUOTE:
原帖由 福瑞哈哥 于 2007-10-8 09:51 发表
exists判断散列或者数组中某值是否存在,defined判断一个值是不是undef。
存在的也有可能是undef。

谢谢楼上二位,明白了,似乎从语方角度上来讲有点矛盾,但计算机就是计算机,不告诉他全部它就不work。