Sub::SingletonBuilder 作った

singleton における実装と制約の分離 (perl の場合) - kazuhoのメモ置き場 の話ですが、先日、Sub::SingletonBuilder なるモジュールを作って CPAN にアップロードしました。こんな感じで使います。

use Sub::SingletonBuilder;

*dbh = build_singleton(
    sub {
        DBI->connect(...) or die DBI->errstr;
    }
);

関数リファレンスとしてシングルトンが生成されるので、ロックオブジェクトの配列を遅延生成したりする場合にも使えると思います。