perlでいうループ制御のlast、next、redo って有効じゃないのですか?

$hoge に30行ほどの文字列が格納されている
そのうち10行を書き出したい

$kazu = '1';
foreach ($hoge as $val) {
 if ($kazu > 10) {
  last;
 }
print "$val\n";
$kazu ++;
}

としても最後まで書き出されてしまいます。
last,next,redoに変わるものがあるのでしょうか?