Perl:将散列引用解引用到标量中?

Perl:将散列引用解引用到标量中?,perl,hash,dereference,Perl,Hash,Dereference,为什么将散列引用解引用到散列中并将其分配给标量会给出一个不相关的值(至少对我而言) 代码: Perl版本:5.12.4 操作系统:Windows7 打印的值是 7/16 标量不能包含哈希或数组,只能引用它们 但是,即使它们可以,当您在标量赋值的右侧使用哈希时,它在标量上下文中,如果哈希为空,标量上下文中的哈希将生成false;如果不是空,则在哈希中生成一个描述存储桶用法的字符串(例如“7/32”).您希望$dereferenced包含什么?my$dereferenced=%$hash;谢谢很抱

为什么将散列引用解引用到散列中并将其分配给标量会给出一个不相关的值(至少对我而言)

代码:

Perl版本:5.12.4

操作系统:Windows7

打印的值是

7/16

标量不能包含哈希或数组,只能引用它们


但是,即使它们可以,当您在标量赋值的右侧使用哈希时,它在标量上下文中,如果哈希为空,标量上下文中的哈希将生成false;如果不是空,则在哈希中生成一个描述存储桶用法的字符串(例如“7/32”).

您希望
$dereferenced
包含什么?my$dereferenced=%$hash;谢谢很抱歉,我发布了重复的问题!现在我明白了,桶的总尺寸=16。包含一个或多个元素的存储桶数=7。因此,7/16。这个杂凑看起来有更多的冲突@博罗丁:我有以下不同的想法。我们可以将哈希定义为%hash=(1,2,3,4)。它实际上意味着(1=>2,3=>4)。同样,取消对散列引用的引用也应该返回相同类型的数组(如果左值不是散列)。在这种情况下(1、9、2、10、3、11等)。因此,将这个返回的数组分配给标量将等同于计算数组长度($length=@array)。很高兴知道“桶”这个新名词。谢谢@InnovWelt术语Bucket对于成为一名更好的Perl程序员并没有多大帮助,而了解标量上下文的含义则非常有用。
7/16