哈希中是否有隐藏的空白元素?

B C*_*hen 1 perl

和哈希一起玩我遇到了以下输出,不知道为什么会这样.默认情况下哈希中是否有嵌入的空格?

#! /usr/bin/perl
# playwhash
use warnings;
use strict;

my %normal = ("Tom ","5'3","Peter ","5'11","John " ,"5'7",);
foreach (1..6) {
    print each %normal, "\n";
    }
Run Code Online (Sandbox Code Playgroud)

输出看起来像

Peter 5'11
Tom 5'3
John 5'7

Peter 5'11
Tom 5'3
Run Code Online (Sandbox Code Playgroud)

def*_*ale 7

每个功能文档:

在每个都返回散列或数组中的所有条目之后,对每个条目的下一次调用将返回列表上下文中的空列表和标量上下文中的undef; 下一次调用后,重新开始迭代.

因此,在第三次迭代之后,each只返回一个空列表,以显示哈希中没有更多元素.Next从头开始调用返回哈希条目.