Class::DBI::Plugin::IteratorCPANに上げるのはいいんですが、誰かやりかた教えてください。――と思ったらこんなドキュメントを発見。うーん、上げちゃっていいのか心配になります(苦笑)。あと、PAUSEにアカウントを作らなくちゃいけないような気がするのと、英語でドキュメントを書かなくちゃいけない*1っぽいのが難点かな。ちなみにClass::DBI::Pagerの改善がどうのというよりも、Class::DBI::Iteratorを使えば全件取得しないと勘違いして使っていたので*2、それの対策をしなくちゃなと思ってたのです。本当はClass::DBI::Liteとか作るつもりだったのでした*3。|これ、全体のベースクラスでプラグインしてしまうと、数行のデータ読み込み時とかで遅くなっちゃうかもなので、このプラグインを当てたページ処理の時専用のクラス作って、ページ処理の時とかだけオブジェクトを再blessしてやったりしたらどうだろうか。オブジェクトの再定義分遅くなっちゃったりしちゃうのかな。Class::DBIのパフォーマンスアップええと、数行の読み込みの時は圧倒的に早くなります。イテレータを生成するときはSQLを発行しませんから。全件一気に表示するときのほうがパフォーマンス的には良くないです*4。いうときはイテレータを使わないと思うので、問題ない気がしてます。改良点はdataメソッドがまともに値を返すようになった。他、こまごまとあたりです。TODOドキュメントを英語にするのと、先読み(prefetch)を追加したらCPANに登録するのも良いかと思うのですが。思うだけで終わりそう......。ほか気付いてる点でまずそう(だけど動くからいいよね的)なのは、SQLを発行してるトコはevalで囲んでおいたほうが親切かもねsliceを使ったときの挙動をClass::DBI::Iteratorと同じにする(けど、あっちが変だと思う)インデントはタブにしておいたほうがいい?あたり。*1:ちなみに日本語のドキュメントは適当に書きました。*2:だってIteratorのドキュメントにそれっぽく書かれてるから。Pagerのほうにはちゃんと注意書きがされてたんですけどね......。*3:高級な機能は必要ないので......。あー、1か月くらい前か。結局放置してたんだけど。*4:そゆときのためにallメソッドを作っておいたのでそちらをどーぞ。01:08はじめまして。有用なモジュールありがとうございます。>>数行のデータ読み込み時とかで遅くなっちゃうかもなので>むしろ全件一気に表示するときのほうがパフォーマンス的には良くないです。