一ヶ月くらい前から暇をみてはPerlクイズを解いていたのだが、ここ2,3日は集中してすすめることができた。というわけで、本日終了。
最後のほうはパズルばかりでかなり手ごわいクイズが並んだが、一通りやり遂げた。
初盤ではハッシュの操作とか正規表現なんかの問題が多かったが、特にソート関係は勉強になった。
あとは、「あらかじめ行数がわかっていなくてもランダムに行を表示する方法は特にイテレータ使ってる場合にランダムに一個選びたい場合にイイ。
chemichoっていうプログラムを書いていたときに、perlmolの部分構造マッチのメソッドがイテレータで、ヒット数を返すメソッドがなかったため、マッチした部分の中からランダムで一箇所選ぶためにわざわざ一回スキャンしてヒット数を調べてから、int(ヒット数*rand)番目を再度イテレータ使って取得するという二回同じイテレータをまわすプログラムだったという。
これって無駄だなと思っていたので、上のやり方はエレガントじゃ!と感動した。