TreeStore.pm
+ djb的なディレクトリツリーデータストアはイイ!
+ とりあえずfindとかgrepとかでがつがつ操作できてしまうのが素晴らしい。
ということで、この部分を汎用的に使うべく、とりあえずPerlモジュール化。
+ 「ディレクトリ = オブジェクト」「ファイル = プロパティ」と考える。
+ 定義メソッドはAUTOLOAD、DESTROY、__ (自分自身の呼び出し)のみ
+ globオブジェクトを使えば、__は不要なのかな?
+ 引数の数、呼び出しコンテキストで動作をあれこれ変える。
アクセス方法あれこれ
+ データストアの根を生成
$root = new TreeStore($root_path);
+ オブジェクトを取得
$object = $root->OBJECT();
+ プロパティの値を取得
$value = $object->PROPERTY();
+ プロパティの値を設定
$object->PROPERTY($value);
+ プロパティの値を配列として取得
@value = $object->PROPERTY();
+ プロパティの値を配列として設定
$object->PROPERTY(@value);
+ プロパティの消去
$object->PROPERTY(undef);
+ オブジェクトの消去
$object->__(undef);
+ いきなりプロパティにアクセス
$value = $root->OBJECT()->PROPERTY();
状況
+ 動いてるけどバグ吐きまくり中
+ どう挙動させるのが「正しい」のかをいまいち掴みかねてる(開発しながら実験中)。
+ しばらくは使いながらデバッグ & インタフェースの洗練。