tokuhirom's Blog

Shipped DBD::PassThrough 0.02

DBD::PassThrough という module を shipped です。

DBIx::* なモジュールの中には $dbh を引数としてうけとらないものが多いのですが、これを無理矢理うけとれるようにするという画期的なモジュールです。

my $dbh = DBI->connect('dbi:PassThrough:', '', '', {
    pass_through_source => $orig_dbh,
});

という風に、$orig_dbh をわたすと、$dbh への操作がすべて $orig_dbh にデリゲートされます。

この機構により、DBIx::Handler のような、$dbh をうけとってくれない DBIx::* モジュールを利用する場合にも、無理矢理ねじこむことが可能となります。

使用例は以下のとおり。

my $handler = DBIx::Handler->new(
   'dbi:PassThrough:', '', '', {
     pass_through_source => $orig_dbh
   }
);

まあ、むりやりねじこみたいとき専用なんで、テストとかそういう用途がメインです。はい。