foreach文で制御変数を省略

広告

foreach文の書式は次のようになっていました。

foreach 変数 (リスト){
  実行する処理1;
  実行する処理2;
}

この中でリストの値を格納する変数を省略することが出来ます。

foreach (リスト){
  実行する処理1;
  実行する処理2;
}

変数を省略した場合には、デフォルト変数として「$_」と言う変数が使用されます。つまり変数が省略された場合は変数として「$_」が指定された場合と同じとなります。

例えば前のページで使用した3つの値が含まれるリストを使い、リストに含まれる値を順に出力する場合で考えてみます。

my @fruit = ("りんご", "メロン", "イチゴ");

foreach (@fruit){
  print "$_¥n";
}

変数が省略されていますので、リストに含まれる各値は変数「$_」を使って取り出すことが出来ます。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test6-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my @fruit = ("りんご", "メロン", "イチゴ");

foreach (@fruit){
  print "$_¥n";
}

上記を「test6-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

foreach文で制御変数を省略

変数を明示的に指定した場合と使用方法は代わりありません。

( Written by Tatsuo Ikura )