perlでforとforeachの使い分けについて

[上に] [前に] [次に]
コバ [E-Mail] 1998/10/15(木) 10:06:29
perlでスクリプトを作っているのですが、
配列を指定回実行する場合、forとforeachとどちらを使った方がよいのでしょうか?
指定回の処理を行うからforかなと思ったのですが、
配列だからforeachかなとも思います。
また、forとforeachの速度の違いなどありましたら教えて下さい。

mo [E-Mail] 1998/10/15(木) 16:43:42
for も foreach も名前が異なるだけで全く同じです。
気にせず、好きな方を用いて下さい。
私はいつも for を使っています。だってこっちのほうが文字数
少ないし(^^)。

コバ [E-Mail] 1998/10/16(金) 17:03:37
 ありがとうございます。
そういう物なんですか。
なんかすっきりしました。

コバ [E-Mail] 1998/10/16(金) 17:07:51
[[解決]]
ごめんなさい。チェック付け忘れました。

Tiot 1998/10/16(金) 17:55:52
forとforeachだと、同じような使い方もできますが
まったくいっしょじゃないです(念のため)。
for($n = 0; $n<10; $n++) のような指定はforeachではできません。
逆にforeach $aa (@list) のように、リストの値をスカラー変数に
代入しながら繰り返すというのはforではふつうしません。
#できますけど。
for(@list) と書いたときとforeach(@list)と書いたときの処理は
同じですが、意味的にはforeachの方が正しいです。

mo [E-Mail] 1998/10/16(金) 18:33:33
perl5 なら foreach ($n = 0; $n<10; $n++) も OK です。
perl5 では内部で foreach を for に置き換えています。
当然、実行速度にも違いはありません。

mm 1998/10/16(金) 22:52:01
foreach($n = 0; $n<10; $n++)が使えないperlがあるのでしょうか?
perl5はmoさんがOKだとおっしゃってますし、
DOS上のperl4(jperl)やunix上の
This is perl, version 4.0 $RCSfile: perl.c,v $$Revision: 4.0.1.8
でも試してみましたが、いずれもOKでしたが…

Tiot 1998/10/17(土) 00:24:41
foreach($n = 0; $n<10; $n++)が使えないというのは僕の勘違いでした。
ごめんなさいm(_|_)m

コバ [E-Mail] 1998/10/18(日) 00:35:08
[[解決]]
 色々ありがとうございます。
と言うことは、ほとんど区別しなくても良いと言うことですね。

[上に] [前に] [次に]