这是我的代码:
my @list = qw (The quick brown fox jumps over the lazy Perl programmer);
my @list1 = qw (Sparta F R I j h df dfsd dfsdf );
my @list2 = qw (The quick brown fox jumps over the lazy Perl programmer);
print length(@list), "\n";
print length(@list1), "\n";
print length(@list2), "\n";
我得到的输出:
2
1
2
输出背后的原因是什么?它不应该给我第一个元素的长度吗?
最佳答案
here和here对此进行了很好的记录
长度函数始终对字符串起作用,并创建SCALAR
其参数的上下文。因此,如果我们将数组作为参数传递,
该数组将放置在SCALAR上下文中,并将返回
其中的元素数量。
在数组上调用length返回数组中元素数的长度。
从而:
包含10个元素的数组length(@list)
返回2
(length(10) == 2
)
9元素数组length(@list1)
返回1
(length(9) == 1
)
关于perl - 将数组传递给Perl length子例程时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084030/