-1
以下兩條語句在內部是否相同? 大型陣列的性能會不會相同?Perl中的數組長度
my $Count=scalar @Array; #1
my $Count=0; foreach (@Array) { $Count++;} # 2
以下兩條語句在內部是否相同? 大型陣列的性能會不會相同?Perl中的數組長度
my $Count=scalar @Array; #1
my $Count=0; foreach (@Array) { $Count++;} # 2
它們完全不同。 Perl知道數組的大小,所以第一個是一個簡單的操作(它不需要遍歷數組來確定它的大小)。
請不要擔心「最快」,而不必先做某種重要的測量。
不要擔心最快的問題,請考慮最清楚的方法。
但是,您的問題的具體答案是for
循環會慢得多,因爲它正在計算一個Perl已經知道的值。
在標量上下文中評估的數組將返回其大小,從而不需要使用「標量」關鍵字。 –
比較'perl -MO =簡明,-exec -E'我的@Array =(4,3,2,1);我的$ Count =標量@Array;''和'perl -MO =簡明,-exec -E 'my @Array =(4,3,2,1); my $ Count = 0; foreach(@Array){$ Count ++;}'' – Quentin
如果您想知道X在Perl中是否比Y更好,請使用[Benchmark](http://perldoc.perl.org/Benchmark.html)。 – ThisSuitIsBlackNot