Perl5 リファレンス



each

【文法】

each 連想配列


【説明】

リストコンテキストの中で呼ばれると、連想配列の次の要素に対応する key と value か
らなる2要素の配列を返します。そのため、何度も繰り返して使うことができます。スカ
ラーコンテキストの中で呼ばれると、連想配列の次の要素の key のみを返します。

返される値は、明らかにランダムな順番になります。実際のランダムな順番は、次期バー
ジョンのPerlで変更されることとなっています。keys関数やvalues関数が同じ連想配列で
作り出すのと同じ順番になることが保証されています。

連想配列が最後まで読み込まれたとき、nullの配列がリストコンテキストの中で返されま
す。そして スカラーコンテキストの中では、"undef" が返されます。その後の "each" 
への次のコールは、再び繰り返して始まります。各連想配列に対して、1回だけの繰り返
しがありますが、プログラムの中で、"each", "keys", "values" 関数のコールすべてに
よって共有されます。:連想配列からすべての要素が読み込まれるか、もしくは "keys 
連想配列", "values 連想配列" を評価すると、それはリセットされます。連想配列の要
素を加えたり削除したりすると、要素をスキップしたり、二重に取得したりしますので、
そうしないで下さい。

次の例は、printenv(1)プログラムのように、あなたの環境を出力します。但し違う順番
で出力されます。

                   while (($key,$value) = each %ENV) {
                       print "$key=$value\n";
                   }



Perl5リファレンスに戻る