This page linked from [ CoverPage | TreeHandle.pm | YaPwのバージョンアップ | YaPw修正情報:2.0pre-2.0rc | YaPw導入メモ ]

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();

状況

+ 動いてるけどバグ吐きまくり中
+ どう挙動させるのが「正しい」のかをいまいち掴みかねてる(開発しながら実験中)。
+ しばらくは使いながらデバッグ & インタフェースの洗練。