Perl中的数组长度

时间:2014-02-06 23:26:12

标签: arrays performance perl

以下两个陈述内部是否相同? 对于大型阵列,它们的性能是否相同?

my $Count=scalar @Array; #1
my $Count=0; foreach (@Array) { $Count++;} # 2

2 个答案:

答案 0 :(得分:10)

他们完全不同。 Perl知道数组的大小,所以第一个是一个简单的操作(它不需要遍历数组来确定它的大小)。

答案 1 :(得分:8)

如果没有先做一些重要的测量,请不要担心“最快”。

不要担心最快,而要考虑哪种方式最清楚。

然而,问题的具体答案是for循环会慢得多,因为它正在计算Perl已经知道的值。