「初めてのPerl」 第三章 - 2
第三章の続きから。
第三章 リストと配列
Point
- foreach制御構造。
@array = ( 1..10 ); foreach ( @array ) { print $_; } #配列要素を順番に処理していく #各要素はデフォルトでは$_でアクセスできる #注意すべきは$_はコピーではなく要素そのものであること #だから foreach ( @array ) { $_ = 0; } #こうすると@arrayの要素全てが0になってしまう
- reverse演算子。
#配列またはリストの逆順を返す @array = ( 1..10 ); @array = reverse @array; #引数の配列要素は逆順にはならない #だからこれではダメ reverse @array;
- sort演算子。
#配列またはリストをコードポイント順にソートする @array = ( 1..10 ); @array = sort @array; #この場合、順番は 1 10 2 3 4 5 6 7 8 9 になる #これは文字列としてコードポイント順にソートしたためである #ソートの順番を指定するのは14章でするらしい
- each演算子。
#配列またはハッシュ(第六章で)の要素とindexを取り出す @array = ( "a", "b", "c" ); while ( my( $index, $value ) = each @array ) { print "[$index] : $value\n"; } #[0] : a #[1] : b #[2] : c # #eachを使わない場合 foreach ( 0..$#array ) { print "[$_] : $array[$_]\n"; } #[0] : a #[1] : b #[2] : c # #場合によって使い分ける
- スカラーコンテキストとリストコンテキスト。
#変数はコンテキスト(文脈)によって返す値が違ってくる #例えば @array = ( 1..3 ); @list = @array; #リストを返す $size = @array; #3という配列のサイズを返す #reverse演算子の挙動も変わってくる @array = ( "ab", "cd", "ef" ); @bw = reverse @array; #( "ef", "cd", "ab" ) $bw = reverse @array; #"fedcba"
- スカラーコンテキストを強制する。
@array = ( 1..10 ); print @array; #12345678910 print scalar @array; #10
次回は
次回は第四章から。