- 14 名前:nobodyさん mailto:sage [2008/03/14(金) 19:17:40 ID:???]
- >>12
暇だから、、、 最後の質問は正解。 一番上の grep BLOCK の中だけ解説。 1. $seen{$_} で %seen に $_ が登録されてるかどうか調べる。 当然最初の一回目は無いから偽。二回目以降は真。 2. ! によって1.の条件が偽の時のみ真。 3. ++ によって $_ を %seen に登録。(++によって数値と見なされ偽を0と 解釈。で普通に1足される)。 4. 1. に戻るが、同じ物が二回目に出てくると真、なので 2. の条件に 当てはまらない。 結果、 uniq なもののみがトラップされる。 uniqu はまあ論外。uniqd は ++ の挙動さえ理解してれば問題ない。 ( $seen{$_} == 1 が解釈された後に $seen{$_} に1が足される。 ちなみに ++ $seen{$_} == 1 は uniq と同じ挙動になる。)
|

|