在Perl中,为什么将哈希与字符串连接会产生看似分数的结果?

Dmi*_*sky 11 string perl concatenation perl-data-structures

我有以下哈希:

my %villains = {
    "Boba" => "Fett",
    "Darth" => "Vader",
    "Moff" => "Tarkin",
}
Run Code Online (Sandbox Code Playgroud)

我然后像这样打印:

print "".%villains;
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

1/8
Run Code Online (Sandbox Code Playgroud)

Perl中的语义是如何实现的?

谢谢!

mfo*_*ett 13

您正在评估标量上下文中的哈希值.当你这样做时,它实际上返回了触及桶总数的一小部分桶,除非没有使用散列,在这种情况下它的计算结果为false.有关详细信息,请参阅此perldoc(接近本节末尾).