Najlepszy sposób na iterację tablicy Perl

Jaka jest najlepsza implementacja (pod względem szybkości i wykorzystania pamięci) do iteracji przez tablicę Perla? Czy jest lepszy sposób? (@Array nie musi być zachowany).

Wdrożenie 1
<code>foreach (@Array)
{
      SubRoutine($_);
}
</code>
Wdrożenie 2
<code>while($Element=shift(@Array))
{
      SubRoutine($Element);
}
</code>
Wdrożenie 3
<code>while(scalar(@Array) !=0)
{
      $Element=shift(@Array);
      SubRoutine($Element);
}
</code>
Wdrożenie 4
<code>for my $i (0 .. $#Array)
{
      SubRoutine($Array[$i]);
}
</code>
Wdrożenie 5
<code>map { SubRoutine($_) } @Array ;
</code>

questionAnswers(6)

yourAnswerToTheQuestion