■2005-08-07
* [メモ][Perl] Class::DBI関連
先月末、Class::DBIのメンテナが切れてメーリングリストやWikiを閉鎖したという話が話題になっていました。そのWikiで思い出したのですが、以前「同じテーブル構造が複数のデータベースにあって、一つのクラスで両方を扱いたい」場合の方法をUsingMultipleDatabasesを参考に書きましたが、色々ミスや不十分なところがあったので、Class::DBI::Plugin::MultiDatabasesとして書き直しました。
これも前書きましたが、Class::DBIの0.96から実装されている「メモリ内にあるオブジェクトの一意性」を保つための参照インデックス(弱いリファレンスを使う)が曲者で、例えば二つのデータベースに同じテーブル構造があって、$cd = Music::CD->retrieve(123)
とします。その後データベースを変更してから再度$cd = Music::CD->retrieve(123)
します。新しいデータベース上に存在する主キー123のデータを取り出したいのですが、前のオブジェクトが破壊されずに残っているため、古いデータベース上のデータが利用されてしまいます。そのため、スコープを限定しておく必要があるのですが、このプラグインではその辺のことを気にしなくても自動で何とかするようにしてみました。
ところで先日、Acme::Class::DBI::NoThreatsというモジュールがCPANに。中は名前空間が違うだけでClass::DBIと同じ。で、説明をみるとClass::DBIのメンテナを怒らせるような内容が。
* [メモ][雑感] あれやこれや
・「アジアの安全な食べ物」という犯罪者と、それに踊らされる馬鹿。 表題は大層きついですが、内容はまあ、至極真っ当。あー、いや、コメント欄とかかみてると、本当に馬鹿が多いのかしら。
・ふええええ 別にこのエントリに限らないのですが、ここの書き手の方はあんなしょーもないものに対して丁寧にツッコミを入れていて偉いなあ……