はじめてのPerl 第6版 第6章 ハッシュ 〜 第7章 正規表現
ひさしぶり
作ってたもの
- 株価をWebからスクレイピングして、ファイルに出力
- あるルールに従ってDB(sqlite)に登録
- DBIx::Custom を利用
- packageでモジュール分け
- 条件入力をmojolicious::liteでつくったフォームからおこなう
- データを配列で持ってくるのか、ハッシュで持ってくるのかなどで試行錯誤
現状
- DBのファイルサイズが大きくなって応答速度がめっちゃ落ちた
- 132860レコードで1.3秒が、30026360レコードでは80秒に
- 最終的には485071860レコードを扱いたいのに
- DBの勉強不足をしみじみと感じる
- しかし、1つの課題が終わると、別な課題が2つ見えてくるなぁ。
- 焦っても仕方ないので、放り出したままの基礎に戻ってきたのでした。
- それにしても、自作スクリプトの楽しさよ。
- 自分の欲しい物作るんだから当然か。
6.1 ハッシュとは
- Perl入学式の練習問題を思い出しながら。
- あの練習問題は本当に良かった。あれで理解できた面がある。
その昔、ハッシュは「連想配列」(associative array)と呼ばれていました。しかし、1995 年ごろに、タイプするに も字数が多すぎるし、発音するにも長すぎるという意見が Perl コミュニティで大勢を占めたために、「ハッシュ」 という名前に変更されました。 (第6版 131p)
- 知らなかったわ・・・
しかし、ハッシュを何らかの形で変換するという処理は、もっと頻繁に行なわれます。例えば、 次のようにすれば、逆引き用のハッシュを作ることができます:
my %inverse_hash = reverse %any_hash; (第6版 139p)
- 唖然とする
- 値が重複しない限り、ではあるけど、こういう考え方、やり方があるなんて
7.2.4 パターンをグループにまとめる
- 後方参照、1個だけなら何とかなる気がするけど、2個以上になるとよく分からなくなる