>>312
コード上で 'for' と書かれているか 'foreach' と書かれているかに関係なく、
条件部が3文から成っていれば「for」ループと解釈され、
リストが置かれていれば「foreach」ループと解釈されるので「変わらない」。

リストの全要素に対して反復処理を行う場合は、「for」ループで
同様の処理を書くよりも専用の「foreach」ループの方が「速い」。

#!/usr/bin/perl -w
use strict;
use Benchmark 'timethese';
my @Array = (0..9,'A'..'Z','a'..'z') x 100;
timethese(-5, {
  f1 => sub { for (my $i = 0; defined $Array[$i]; ++$i) {} },
  f2 => sub { foreach (my $i = 0; defined $Array[$i]; ++$i) {} },
  e1 => sub { foreach my $chr (@Array) { defined $chr } },
  e2 => sub { for my $chr (@Array) { defined $chr } },
  e3 => sub { my $i = 0; foreach my $chr (@Array) { defined $chr; ++$i } },
  e4 => sub { my $i = 0; for my $chr (@Array) { defined $chr; ++$i } },
});
__END__