めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

牛歩のようにSledge(4)

果たして、牛歩じゃなくなくなるときは来るのかしら?
それは、努力しだい、ということで(当たり前)。

Class::DBIで「sth_to_objects」について、ようわからん、と書いていたら
http://d.hatena.ne.jp/tokuhirom/20051209/1134094717

sth_to_objects は確かにドキュメントが無いですね。sth_to_objects を直接叩くケースはほとんど無いので、そういう扱いなんでしょう。

まぁ、CDBI は辟易しながらソースを読んで使うものです。Class::DBI のアレっぽさには定評がありますので、勉強になりますよね。。。

# uncodcumented な機能とか結構多いですし。。。

とありまして、じゃあ、その箇所はどこかいな、と調べてみたら、ここらしい。


sub sth_to_objects {
my ($class, $sth, $args) = @_;
$class->_croak("sth_to_objects needs a statement handle") unless $sth;
unless (UNIVERSAL::isa($sth => "DBI::st")) {
my $meth = "sql_$sth";
$sth = $class->$meth();
}
my (%data, @rows);
eval {
$sth->execute(@$args) unless $sth->{Active};
$sth->bind_columns(\(@data{ @{ $sth->{NAME_lc} } }));
push @rows, {%data} while $sth->fetch;
};
return $class->_croak("$class can't $sth->{Statement}: $@", err => $@)
if $@;
return $class->_ids_to_objects(\@rows);
}

ええと...。