さわだのノート

書籍のお仕事に役立つかもしれない思いつきを記録しています。

RSS: 記事の更新情報 Rss Feed

カウンタ変数を使ったforループについて

同じ要素数を持った2つのリストを順々に処理したいときなどに使う、カウンタ変数付きのforループ。今までこんな感じで書いていました。

my @list1 = 1..100;
my @list2 = 101..200;
for (my $i = 0; $i < scalar @list1; $i++) {
  say "$list1[$i] + 100 => $list2[$i]";
}

でも、下記みたいな形でも書けちゃうみたいですね。
考えてみればそりゃできるよなって感じです。

my @list1 = 1..100;
my @list2 = 101..200;
say "$list1[$_] + 100 => $list2[$_]" for (0 .. $#list1);

下の方がPythonの for i in range(100): みたいな書き方っぽくてわかりやすいかもしれません。Pythonよくわかりませんが。