为什么输出变量“$size = @keys;”数值 3 输出?(Perl)
why does outputting the variable "$size = @keys;" the numerical value 3 output?(Perl)
my %data = (-hund => 12, -katze => 14, -maus => 16, -kuh => 18);
my @keys = keys %data;
my $size = @keys;
print "$size\n";
为什么输出变量$size
时显示的是键数?
这是因为标量赋值在 标量上下文 中计算右侧。一个数组 returns 它在标量上下文中的元素数。参见 perldata。
@keys
在标量上下文中计算(因为它被分配给标量)。在标量上下文中评估的数组会产生其元素数。
my %data = (-hund => 12, -katze => 14, -maus => 16, -kuh => 18);
my @keys = keys %data;
my $size = @keys; # 4
在标量上下文中计算 keys
时,它会生成所提供散列中的元素数。
my $size = keys %data; # 4
自 5.26 起,标量上下文中的哈希生成哈希中的元素数。
my $size = %data; # 4 (5.26+)
my %data = (-hund => 12, -katze => 14, -maus => 16, -kuh => 18);
my @keys = keys %data;
my $size = @keys;
print "$size\n";
为什么输出变量$size
时显示的是键数?
这是因为标量赋值在 标量上下文 中计算右侧。一个数组 returns 它在标量上下文中的元素数。参见 perldata。
@keys
在标量上下文中计算(因为它被分配给标量)。在标量上下文中评估的数组会产生其元素数。
my %data = (-hund => 12, -katze => 14, -maus => 16, -kuh => 18);
my @keys = keys %data;
my $size = @keys; # 4
在标量上下文中计算 keys
时,它会生成所提供散列中的元素数。
my $size = keys %data; # 4
自 5.26 起,标量上下文中的哈希生成哈希中的元素数。
my $size = %data; # 4 (5.26+)